当前位置:  开发笔记 > 编程语言 > 正文

实体框架:设置外键属性

如何解决《实体框架:设置外键属性》经验,为你挑选了1个好方法。

我们有一个看起来像这样的表:

CREATE TABLE Lockers 
{
  UserID int NOT NULL PRIMARY KEY (foreign key),
  LockerStyleID int (foreign key),
  NameplateID int (foreign key)
}

所有键都与其他表相关,但由于应用程序的分发方式,我们更容易将ID作为参数传递.所以我们想这样做:

Locker l = new Locker { 
  UserID = userID, 
  LockerStyleID = lockerStyleID, 
  NameplateID = nameplateID 
};
entities.AddLocker(l);

我们可以在LINQ-to-SQL中完成,但不能用EF?



1> Pieter Breed..:

这个缺失的功能似乎惹恼了很多人.

好消息:MS将解决.NET 4.0的问题.

坏消息:就目前而言,或者如果你坚持使用3.5,你必须做一些工作,但这是可能的.

你必须这样做:

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();

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有