Database 将数据保存到关系数据库(实体框架)
我在将数据保存到数据库时遇到了一些问题。基本上,我有一个与其他表关联的主表(下面的示例) Tbl_列表Database 将数据保存到关系数据库(实体框架),database,entity-framework,Database,Entity Framework,我在将数据保存到数据库时遇到了一些问题。基本上,我有一个与其他表关联的主表(下面的示例) Tbl_列表 身份证 UserID-与用户表中的ID关联 CategoryID-与类别表中的ID关联 LevelID-与级别表中的ID关联 名字 地址 通常,我很容易向数据库添加数据(使用实体框架)。但是,我不知道如何将数据添加到具有关联的字段中。众多的ID字段只需要保存一个与关联表中的ID相对应的int值 比如,;当我尝试以以下方式访问列时,我得到一个“对象引用未设置为对象的实例。”错误 我使用的是N
- 身份证
- UserID-与用户表中的ID关联
- CategoryID-与类别表中的ID关联
- LevelID-与级别表中的ID关联
- 名字
- 地址
-S通常,在实体框架中,您不使用外键的ID:S,而是使用引用。设置关联表的属性而不是设置ID 在您的情况下,可能是这样的:
Listing newListing = new Listing();
newListing.Tbl_User = DBEntities.Users.Single(u=>u.ID == 1);
newListing.Tbl_Category = DBEntities.Categories.Single(c=>c.ID == 2);
...
DBEntities.AddToListingSet(newListing);
DBEntities.SaveChanges();
在EntityFramework4(随.NET4.0提供)中,您将能够使用更简单的语法,更像您所期望的那样
你可以在msdn上看到这一点,在那里你可以阅读更多关于这一点的信息 谢谢,效果很好。我不得不将Single()更改为First(),因为linqto实体显然不支持Single()。再次感谢!
Listing newListing = new Listing();
newListing.Tbl_User = DBEntities.Users.Single(u=>u.ID == 1);
newListing.Tbl_Category = DBEntities.Categories.Single(c=>c.ID == 2);
...
DBEntities.AddToListingSet(newListing);
DBEntities.SaveChanges();