3

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

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

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

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

4

1 回答 1

1

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

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

于 2012-12-13T15:06:17.503 回答