Używam poniżej opisanej metody. To zwraca wynik dynamiczny."Obiekt" nie zawiera definicji dynamicznej
public static dynamic GetCouponDetailsbyCouponID(Guid couponID)
{
using (var loEntities = new Entities())
{
dynamic nonWinnerGift = (from nw in loEntities.CorporateNonWinnerGift
join um in loEntities.Users on nw.UserID equals um.Id
where nw.IsDeleted != true && nw.CouponID == couponID
select new
{
FullName = (um.FirstName + " " + um.LastName),
Title = nw.Title,
Description = nw.Description,
LogoName = nw.LogoName,
CouponID = nw.CouponID,
IsDiscount = nw.IsDiscount,
Discount = nw.Discount,
Desclaiemer = nw.Desclaiemer
}).SingleOrDefault();
return nonWinnerGift;
}
}
dynamic expandDoObject = new ExpandoObject();
Kiedy próbuję uzyskać dostęp do „couponData.LogoName” niż rzucony dynamicznego wyjątku czasu wykonywania. Proszę znaleźć poniżej mojego wyjątkiem „Pierwsza szansa wyjątek typu«Microsoft.CSharp.RuntimeBinder.RuntimeBinderException»wystąpił w ClosetAuctions.dll Informacje dodatkowe:«obiekt»nie zawierają definicji«LogoName»”
var couponData = CorporateNonWinnerGiftBL.GetCouponDetailsbyCouponID(couponID);
if (couponData != null)
{
string fileName = couponData.LogoName;
}
Dlaczego używasz kodu dynamicznie wpisany do przekazywania danych wokół? To nie jest javascript. – dcastro
Mam dwie klasy i chcę wrócić w połączeniu oba parametry przy użyciu kwerendy linq. I nie chcę tworzyć oddzielnej klasy. Więc proszę, zasugeruj mi, co muszę zrobić. –
Zamiast tego można na przykład zwrócić klasę zagregowaną. 'class Wynik {publiczny WinnerGift WinnerGift {get; zestaw; } public User User {get; zestaw; }} ' – dcastro