【问题标题】:Get values in NotMapped property in model class Entity Framwork Code First using linq使用linq在模型类Entity Framework Code First中获取NotMapped属性中的值
【发布时间】:2012-12-13 23:06:17
【问题描述】:

我有以下情况。我首先使用 EF 5 代码,VS 2010 上使用 MVC 4。我正在为我的项目使用工作单元和存储库模式。

我不确定这是否可能。请建议。

我有一个代表数据库表的模型类。在模型类中,我有一个被修饰为 [NotMapped] 的属性。我有一个返回数据的存储过程,类似于模型类。但是,当我从 SP 获取列表中的数据时,它不包含 [NotMapped] 列的值(尽管 SP 返回 [NotMapped] 列的数据)。对于 EF,这在逻辑上可能是正确的。

我只想知道,我们是否有办法为 [NotMapped] 列填充数据。我想实现,CRUD 使用 LINQ(不包括 R - Read)。

【问题讨论】:

    标签: entity-framework ef-code-first


    【解决方案1】:

    我建议为存储过程结果创建一个单独的复杂类型。否则,您迟早会发现自己编写代码来区分来自 DbSet 或来自存储过程的实体。例如,当来自存储过程时,它们不能用于连接。或者检查是否设置了未映射的属性。

    一个非常肮脏的方法可能是有两个不同的上下文。使用代码优先,可以有不同的上下文,不同的映射到相同的类型,忽略或不忽略列(如果您使用流畅的映射,而不是数据注释)。但这只有在您告诉 EF 不检查数据库模式时才会成功,因此也排除了使用迁移。我不会这样做的!原因和我上面提到的一样。我不希望有一个具有有时设置有时未设置的属性的类型。

    【讨论】:

    • 感谢您的 cmets。这种方法怎么样? (我想你也暗示过同样的事情)。 1.在新类中继承模型类。 2. 新类将用于 SP 调用 3. 旧类将用于其他创建、更新删除操作
    • 你可以这样做,如果你覆盖继承类中未映射的属性,你甚至可以使用相同的属性名称。
    猜你喜欢
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2012-08-09
    • 2016-02-14
    • 2011-12-24
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多