为了账号安全,请及时绑定邮箱和手机立即绑定

实体框架:没有主键的表

实体框架:没有主键的表

宝慕林4294392 2019-07-26 16:26:49
实体框架:没有主键的表我有一个现有的数据库,我想用EF4.0构建一个新的应用程序某些表没有定义主键,因此当我创建新的实体数据模型时,我收到以下消息:“表/视图TABLE_NAME没有定义主键,也没有推断出有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的架构,添加正确的密钥,并取消注释“。如果我想使用它们并修改数据,我是否必须在这些表中添加PK,或者是否有解决方法以便我不必?
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

我认为这是由蒂利托解决的:

实体框架和SQL Server视图

我将在下面引用他的条目:

我们遇到了同样的问题,这就是解决方案:

要强制实体框架使用列作为主键,请使用ISNULL。

要强制实体框架不使用列作为主键,请使用NULLIF。

一种简单的方法是将视图的select语句包装在另一个select中。

例:

SELECT
  ISNULL(MyPrimaryID,-999) MyPrimaryID,
  NULLIF(AnotherProperty,'') AnotherProperty
  FROM ( ... ) AS temp


查看完整回答
反对 回复 2019-07-26
?
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 });
        ...
     }}


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 630 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信