Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架中的单边一对一关系_C#_Entity Framework Core_One To One - Fatal编程技术网

C# 实体框架中的单边一对一关系

C# 实体框架中的单边一对一关系,c#,entity-framework-core,one-to-one,C#,Entity Framework Core,One To One,我有两个模型类(Tickets和Activities),其中Activities更像是一个查找表,不应该包含任何导航属性或其他实体的FK Tickets中的记录应该有一个活动,但在整个Tickets表中,将有许多相同的活动。活动需要是一个表,而不是(例如)枚举,因为将来可能会进行更新和修改 虽然这看起来很简单,但我经常遇到错误,比如标识设置为off 我的模型: public class Tickets { public int ID {get; set;} // fk

我有两个模型类(
Tickets
Activities
),其中
Activities
更像是一个查找表,不应该包含任何导航属性或其他实体的FK

Tickets
中的记录应该有一个
活动
,但在整个
Tickets
表中,将有许多相同的
活动
。活动需要是一个表,而不是(例如)枚举,因为将来可能会进行更新和修改

虽然这看起来很简单,但我经常遇到错误,比如
标识设置为off

我的模型:

public class Tickets
{
    public int ID {get; set;}

    // fk
    public int ActivityID {get; set;

    // nav property
    public Activity Activity {get; set;}
    // other properties.        
}

public class Activity
{
    public int ID {get; set;}
    public int RankOrder {get; set;}
    //other properties
}
我已为
票证
模型指定了域映射:

    builder.HasOne(t => t.Activity)
        .WithMany()
        .HasForeignKey(t => t.ActivityID);
基于这篇SO文章和blogpost:但我没有让它工作,我最近的错误消息是:

SqlException:当identity\u insert设置为OFF时,无法在表“Activity”中为identity列插入显式值

此外,通过这种映射,EF似乎在活动表中创建了一个Ticket列,这是我不想要的

builder.Entity<Ticket>() 
         .HasOne(t => t.Activity)
        .WithMany(a => a.Ticket)
        .HasForeignKey(t => t.ActivityID);
builder.Entity()
.HasOne(t=>t.Activity)
.WithMany(a=>a.Ticket)
.HasForeignKey(t=>t.ActivityID);
试试这个

builder.Entity<Ticket>() 
         .HasOne(t => t.Activity)
        .WithMany(a => a.Ticket)
        .HasForeignKey(t => t.ActivityID);
builder.Entity()
.HasOne(t=>t.Activity)
.WithMany(a=>a.Ticket)
.HasForeignKey(t=>t.ActivityID);

my Activity表没有任何导航属性。因此,
.WithMany(a=>a.Ticket)
是不可能的。我更改了代码以使其更清晰,可能
字符串活动
被视为导航道具。我的活动表没有任何导航属性。因此,
.WithMany(a=>a.Ticket)
是不可能的。我更改了代码以使其更清晰,可能
字符串活动
被视为导航道具。