0

假设我想插入一辆带有品牌的新车:

public class Car {

 public int Id {get;set;}
 public string Name {get;set;}
 public MakeId {get;set;}

}

public class Make{

 public int Id {get;set;}
 public string Name {get;set;}     

}

现在假设我有要插入的汽车的品牌名称。我不想对 make 进行查询以检索 make id,然后再进行新查询以插入汽车。我希望 EF 产生类似的东西:

INSERT INTO Cars (Name, MakeId)
 SELECT @name, m.Id FROM Makes m WHERE m.Name = @makeName

这是否可能以某种方式或只是下降到 ADO.NET ?

4

1 回答 1

0

那是不可能的。您只能通过将外键属性设置为 a 的有效键值或将导航属性设置为再次具有有效键值的实体来创建从Car到的关系。在这两种情况下,您都需要知道要分配给. 知道任何其他属性(例如)是不够的,即使通过数据库中的唯一键约束保证它是唯一的也是如此。MakeCar.MakeIdMakeCar.MakeMakeIdMakeCarMake.Name

于 2013-06-08T11:51:17.550 回答