实体框架:没有主键的表

实体框架:没有主键的表

我有一个现有的数据库,我想用EF4.0构建一个新的应用程序

某些表没有定义主键,因此当我创建新的实体数据模型时,我收到以下消息:“表/视图TABLE_NAME没有定义主键,也没有推断出有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的架构,添加正确的密钥,并取消注释“。

如果我想使用它们并修改数据,我是否必须在这些表中添加PK,或者是否有解决方法以便我不必?


宝慕林4294392
浏览 631回答 3
3回答

蛊毒传说

我认为这是由蒂利托解决的:实体框架和SQL Server视图我将在下面引用他的条目:我们遇到了同样的问题,这就是解决方案:要强制实体框架使用列作为主键,请使用ISNULL。要强制实体框架不使用列作为主键,请使用NULLIF。一种简单的方法是将视图的select语句包装在另一个select中。例:SELECT   ISNULL(MyPrimaryID,-999) MyPrimaryID,   NULLIF(AnotherProperty,'') AnotherProperty   FROM ( ... ) AS temp

qq_笑_17

复合键也可以使用Entity Framework Fluent API完成public&nbsp;class&nbsp;MyModelConfiguration&nbsp;:&nbsp;EntityTypeConfiguration<MyModel>{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;MyModelConfiguration() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ToTable("MY_MODEL_TABLE"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HasKey(x&nbsp;=>&nbsp;new&nbsp;{&nbsp;x.SourceId,&nbsp;x.StartDate,&nbsp;x.EndDate,&nbsp;x.GmsDate&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP