Rob*_*Rob 16 c# ado.net-entity-data-model
我们有一个看起来像这样的表:
CREATE TABLE Lockers
{
UserID int NOT NULL PRIMARY KEY (foreign key),
LockerStyleID int (foreign key),
NameplateID int (foreign key)
}
Run Code Online (Sandbox Code Playgroud)
所有键都与其他表相关,但由于应用程序的分发方式,我们更容易将ID作为参数传递.所以我们想这样做:
Locker l = new Locker {
UserID = userID,
LockerStyleID = lockerStyleID,
NameplateID = nameplateID
};
entities.AddLocker(l);
Run Code Online (Sandbox Code Playgroud)
我们可以在LINQ-to-SQL中完成,但不能用EF?
Pie*_*eed 16
这个缺失的功能似乎惹恼了很多人.
你必须这样做:
Locker locker = new Locker();
locker.UserReference.EntityKey = new System.Data.EntityKey("entities.User", "ID", userID);
locker.LockerStyleReference.EntityKey = new EntityKey("entities.LockerStyle", "ID", lockerStyleID);
locker.NameplateReference.EntityKey = new EntityKey("entities.Nameplate", "ID", nameplateID);
entities.AddLocker(locker);
entities.SaveChanges();
Run Code Online (Sandbox Code Playgroud)