मैं कुछ LINQ संस्थाओं है कि कुछ इस तरह के वारिस है:LinqToSql और अमूर्त आधार वर्ग
public abstract class EntityBase { public int Identifier { get; } }
public interface IDeviceEntity { int DeviceId { get; set; } }
public abstract class DeviceEntityBase : EntityBase, IDeviceEntity
{
public abstract int DeviceId { get; set; }
}
public partial class ActualLinqGeneratedEntity : DeviceEntityBase
{
}
एक सामान्य विधि में मैं के साथ DeviceEnityBase व्युत्पन्न संस्थाओं से क्वेरी कर रहा हूँ:
return unitOfWork.GetRepository<TEntity>().FindOne(x => x.DeviceId == evt.DeviceId);
जहां TEntity एक contraint है यह एक डिवाइस एंटीटीबेस है। यह क्वेरी हमेशा "अमान्य ऑपरेशन अपवाद" के साथ "क्लास सदस्य DeviceEntityBase.DeviceId असमर्थित" संदेश के साथ विफल रही है। यहां तक कि अगर मैं
[Column(Storage = "_DeviceId", DbType = "Int", Name = "DeviceId", IsDbGenerated = false, UpdateCheck = UpdateCheck.Never)]
@Lijo - मुझे लगता है कि Ladislav का जवाब एक अच्छा एक ... –
धन्यवाद है। लेकिन यह "एक इंटरफेस के लिए प्रोग्रामिंग" नहीं होगा, है ना? बाद http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx में स्कॉट से एक टिप्पणी है - "जोड़ें आपके LINQ से SQL डेटा मॉडल कक्षाओं के इंटरफेस। LINQ से SQL कक्षाएं आंशिक कक्षाएं हैं - जिसका अर्थ है कि आप सीधे उन्हें इंटरफ़ेस जोड़ सकते हैं। " यह सुझाव हमारे परिदृश्य में काम नहीं करता है। क्या यह काम करने का कोई तरीका है? – Lijo