c# - 实体框架中的单边一对一关系
问题描述
我有两个模型类(Tickets
和Activities
),其中Activities
更像是一个查找表,并且不应该包含任何导航属性或其他实体的 FK。
一个记录中Tickets
应该有一个Activity
,但在整个表中Tickets
,会有很多相同的Activities
。活动需要是一个表格,而不是(例如)一个枚举,因为将来可能会更新和修正。
尽管这似乎微不足道,但我一直遇到诸如Identity is Set to 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
}
我为Tickets
模型指定了域映射:
builder.HasOne(t => t.Activity)
.WithMany()
.HasForeignKey(t => t.ActivityID);
基于此 SO-post 和 blogpost:here和here但我无法正常工作,我最近的错误消息是:
SqlException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“活动”中插入标识列的显式值。
此外,通过此映射,EF 似乎在 Activity 表中创建了一个 Ticket 列,这是我不想要的。
解决方案
尝试这个
builder.Entity<Ticket>()
.HasOne(t => t.Activity)
.WithMany(a => a.Ticket)
.HasForeignKey(t => t.ActivityID);
推荐阅读
- angular - 使用 Angular 单独管理无线电元素数组
- unit-testing - Gradle 忽略了我的一个 Spock 单元测试,它没有告诉我为什么
- r - 使用 tidyverse 语言添加列,但使用列号而不是列名
- java - 使用 Guice 延迟绑定到实例
- php - 无法从请求中获取 POST 数据
- java - 如何将字节数组中的特定字节转换为整数
- python - 使用python3.7解析json对象时出错,无法访问键值
- javascript - 继承放置在另一个文件中的子类 (CoffeeScript)
- html - 由于不支持其 MIME 类型,样式表未显示,但调试时 MIME 类型显示为空白
- powershell - 使用 powershell 通过 powershell 创建和设置安全性