【发布时间】:2013-10-03 13:24:41
【问题描述】:
我想通过单一方法将我的UserCompany 对象插入数据库。比如将元素传递给这个函数,取它并“插入右表”。
通常在实体中(例如 LINQ to XML)我会做类似的事情:
db.Company.UsersCompany.Add(UserCompany);
db.SubmitChanges();
但这里的问题是我需要在使用.Add() 之前指定表UsersCompany 和Company。
我想(因为我想为每种类型的对象/表的插入执行一个函数)摆脱这个。比如有一个:
UserCompany.InsertMySelf();
或
db.SmartAdd(UserCompany);
它知道如何自动插入表格,在哪里以及如何插入。
可以这样做吗?有什么策略吗?
【问题讨论】:
-
您的上下文之上的存储库模式?在该方法中根据对象类型切换?
-
你能给我举个例子吗?
-
是的,给我几分钟时间输入一些代码。
-
Usually in Entity (such as LINQ to XML) I do somethings like是什么意思?实体框架和 LINQ to XML 不是一回事。一般来说,您是否尝试过简单地做db.UserCompanies.Add(UserCompany)?如果您的Company对象是UserCompany对象的一部分,则应将整个对象图正确插入数据库(即Company和UserCompany表)。如果不是这样,请提供您的数据库结构和映射实体,以及您正在尝试的代码。 -
@Yakimych:这只是一个例子。与
db.UserCompanies.Add(UserCompany)一样,我必须指定UserCompanies。所以我每次都需要指定“父”表。这意味着我不能执行一般的“插入”功能,因为我需要预先选择哪个父表是目标。你知道我的意思吗?
标签: .net sql-server entity-framework insert