实体框架:使用外键添加对象

c# entity-framework sql-server

我有2个工作岗位和时间表

工作

JobId - int,PK,Identity
ScheduleId - int,FK
标题 - varchar
描述 - varchar

时间表

ScheduleId - int,PK,Identity
名称 - varchar

在删除时级联有一对多的关系。

当我创建实体模型时,生成的作业模型将删除ScheduleId字段。

问题是我无法使用指定的ScheduleId插入新作业!

 Job job = new Job();
 job.title= "blabla";
 job.description="xyz";
 job.scheduleId=1// can't have this!

 if (job.EntityState == EntityState.Detached)
 {
      myContext.AddToJobs(job);
 }
 myContext.SaveChanges();

注意:我在Scheduleles表中有一行,scheduleId = 1。

热门答案

您可以在不实际加载Schedule对象的情况下分配Schedule。像这样的东西:

db = new OneToManyEntities(); 
var address = new Address { Address1 = "Oakumber st", City = "Dallas", State = "Tx", Zip = "76111" }; 
address.CustomerReference.EntityKey = new EntityKey("OneToManyEntities.Customer","CustomerId",2); 
db.AddToAddresses(address);

我不喜欢这种方法,你必须在字符串中硬编码实体类型:/如果有人知道如何在没有这种硬编码的情况下这样做 - 请评论。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因