实体框架:没有主键的表我有一个现有的数据库,我想用EF4.0构建一个新的应用程序某些表没有定义主键,因此当我创建新的实体数据模型时,我收到以下消息:“表/视图TABLE_NAME没有定义主键,也没有推断出有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的架构,添加正确的密钥,并取消注释“。如果我想使用它们并修改数据,我是否必须在这些表中添加PK,或者是否有解决方法以便我不必?
3 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
我认为这是由蒂利托解决的:
我将在下面引用他的条目:
我们遇到了同样的问题,这就是解决方案:
要强制实体框架使用列作为主键,请使用ISNULL。
要强制实体框架不使用列作为主键,请使用NULLIF。
一种简单的方法是将视图的select语句包装在另一个select中。
例:
SELECT ISNULL(MyPrimaryID,-999) MyPrimaryID, NULLIF(AnotherProperty,'') AnotherProperty FROM ( ... ) AS temp
qq_笑_17
TA贡献1818条经验 获得超7个赞
复合键也可以使用Entity Framework Fluent API完成
public class MyModelConfiguration : EntityTypeConfiguration<MyModel>{ public MyModelConfiguration() { ToTable("MY_MODEL_TABLE"); HasKey(x => new { x.SourceId, x.StartDate, x.EndDate, x.GmsDate }); ... }}
- 3 回答
- 0 关注
- 630 浏览
添加回答
举报
0/150
提交
取消