实体框架:没有主键的表我有一个现有的数据库,我想用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 关注
 - 660 浏览
 
添加回答
举报
0/150
	提交
		取消
	