当前位置:  开发笔记 > 编程语言 > 正文

LinqToSql和抽象基类

如何解决《LinqToSql和抽象基类》经验,为你挑选了1个好方法。

我有一些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);

而鲍勃是你的叔叔!



1> Shaul says I..:

哇,看起来像我曾经可以单挑@MarcGravell!

我有同样的问题,然后我发现了这个答案,它解决了我的问题!

在你的情况下,你会说:

return unitOfWork.GetRepository().Select(x => x).FindOne(x => x.DeviceId == evt.DeviceId);

而鲍勃是你的叔叔!

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有