मेरे पास लिंक से एंटिटी विधियों का एक गुच्छा है, जिसमें एक ही चयन कथन था, इसलिए मैंने सोचा कि मैं चालाक हो जाऊंगा और इसे अनावश्यकता को कम करने के लिए अपनी विधि में अलग कर दूंगा ... लेकिन जब मैंने कोड चलाने का प्रयास किया, तो मुझे मिला निम्न त्रुटि ...लिंक त्रुटि का कारण क्या है: इस विधि को स्टोर अभिव्यक्ति में अनुवादित नहीं किया जा सकता है?
this method cannot be translated into a store expression
यहाँ विधि मैं बनाया ...
public User GetUser(DbUser user, long uid)
{
return new User
{
Uid = user.uid,
FirstName = user.first_name,
LastName = user.last_name
};
}
है और इस तरह की एक विधि में बोल रहा हूँ ...
public User GetUser(long uid)
{
using (var entities = new myEntities()) {
return
entities.DbUsers.Where(x => x.uid == uid && x.account_status == (short)AccountStatus.Active).
Select(x => GetUser(x, uid)).FirstOrDefault();
}
}
अद्यतन: यहाँ कोड है कि इनलाइन काम करता है
public User GetUser(long uid, long uid_user)
{
using (var entities = new myEntities())
{
var q = from u in entities.DbUsers
where u.uid == uid_user
select new User
{
Uid = u.uid,
FirstName = u.first_name,
LastName = u.last_name,
BigPicUrl = u.pic_big,
Birthday = u.birthday,
SmallPicUrl = u.pic_small,
SquarePicUrl = u.pic_square,
Locale = u.locale.Trim(),
IsFavorite = u.FavoriteFriends1.Any(x => x.uid == uid),
FavoriteFriendCount = u.FavoriteFriends.Count,
LastWishlistUpdate = u.WishListItems.OrderByDescending(x => x.added).FirstOrDefault().added,
Sex = (UserSex)u.sex
};
var user = q.FirstOrDefault();
user.DaysUntilBirthday = user.Birthday.DaysUntilBirthday();
return user;
}
}
मैंने इस तकनीक की कोशिश की और यह अभी भी –
विफल रहता है क्यों आपके पास डीबीयूसर और उपयोगकर्ता है? क्या ईएफ की संस्थाएं आपकी डोमेन इकाइयां नहीं हैं ??? ऐसा लगता है कि उपयोगकर्ता डीबीयूसर का एक संक्षिप्त संस्करण है क्यों न सिर्फ डीबीयूसर पर काम करता है? –
मैं अनुमान लगाता हूं कि डीबीयूसर ईएफ पॉको है, और उपयोगकर्ता उसका कस्टम बिजनेस ऑब्जेक्ट है। फिर भी, मैं सीधे अपने कस्टम पोको में मानचित्रण करना पसंद करता हूं। मध्य आदमी को छोड़ दो। – RPM1984