首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CTP4:没有主键的表?

CTP4:没有主键的表?
EN

Stack Overflow用户
提问于 2010-11-01 12:39:44
回答 2查看 5.9K关注 0票数 3

首先使用实体框架和代码,是否可以让它创建和使用没有主键的表?我不能让这套装置起作用:

代码语言:javascript
复制
public class Report
{
    public virtual int ReportId
    public virtual ICollection<ReportChanges> ReportChanges
}

public class ReportChanges
{
    public virtual Report Report
    public virtual string EditorName
    public virtual DateTime Changed
}

注意,我已经排除了在ReportChanges中分配主键。但是通过这种设置,我得到了:“无法推断实体类型‘ReportChanges’的键”。

要么我遗漏了什么,要么Code不支持没有主键的表。什么是正确的?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-01 13:06:43

如果仍然有唯一标识行的方法,EF可以支持没有PI的表,但是如果没有正确的PK,它就无法推断唯一标识符。换句话说,向EF撒谎,说在ReportChanged上有一个PK,比如说。

票数 1
EN

Stack Overflow用户

发布于 2013-09-02 17:09:44

EF需要一种跟踪自己内部变化的方法。下面是一个代码示例,以帮助其他搜索过此内容的人:

代码语言:javascript
复制
public class YourDataContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<ReportChanges>().HasKey(x => new {x.Report, x.Changed});
    }
}

"new {x.Report,x.Changed}“创建一个假的复合键,允许EF在内部唯一地指向一行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4068920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档