我有一些linq实体继承了这样的东西:
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().FindOne(x => x.DeviceId == evt.DeviceId);
其中TEntity有一个绑定,它是一个DeviceEntityBase.此查询始终失败,并出现InvalidOperationException,并显示消息"类成员DeviceEntityBase.DeviceId未映射".即使我在抽象基类中添加了一些映射信息
[Column(Storage = "_DeviceId", DbType = "Int", Name = "DeviceId", IsDbGenerated = false, UpdateCheck = UpdateCheck.Never)]
Shaul says I.. 5
哇,看起来像我曾经可以单挑@MarcGravell!
我有同样的问题,然后我发现了这个答案,它解决了我的问题!
在你的情况下,你会说:
return unitOfWork.GetRepository().Select(x => x).FindOne(x => x.DeviceId == evt.DeviceId);
而鲍勃是你的叔叔!
哇,看起来像我曾经可以单挑@MarcGravell!
我有同样的问题,然后我发现了这个答案,它解决了我的问题!
在你的情况下,你会说:
return unitOfWork.GetRepository().Select(x => x).FindOne(x => x.DeviceId == evt.DeviceId);
而鲍勃是你的叔叔!