2011-04-20 102 views
0

我在项目中使用AdventureWorks示例数据库。我可以使用vStorewithDemographics显示客户(作为各种商店)的信息。这是一个从数据库中的不同表中检索不同数据的视图。使用linq将多个数据插入到不同的表中?

我想我的程序使用linq将实体插入到数据库中的新客户,我不知道如何去做这件事。插入视图只是给我错误,我认为会发生,因为它不是一张桌子。

有什么办法可以解决这个问题?

回答

1

是有可能跟随以下步骤

- >创建INSTEAD OF触发器,并使用它,你可以执行它 例如,我有两个表的客户和customerContacts后者包含客户和视图的电话号码名称客户详细信息将带来客户的所有细节如下

创建视图[dbo]。[CustomerDetails] as 从客户c选择c。*,cc.PhoneNumber内部联接customerContact cc on c.CustomerId = cc。 CustomerId

用于插入有创造,而不是触发

CREATE TRIGGER trgInsteadOfUpdate ON dbo.CustomerDetails

INSERT INSTEAD OF

AS

申报@Id诠释

- 插入客户 INSERT INTO客户选择CustomerName,CustomerAddress,State,Country FROM插入

Set @id = SCOPE_IDENTITY()

- 插入CustomerContact INSERT INTO customerContact SELECT ******中国,@ ID FROM插入

GO

当在LINQ我可以用户插入任何的如下两种方式

//插入视图

VAR newCusContact =新为CustomerDetail {国家= “印度”,CustomerAddress = “BBB”,客户名称= “测试”,******中国= “7879654”,国家= “德里”};

db.CustomerDetails.InsertOnSubmit(newCusContact);

db.SubmitChanges();

OR

串insertStatement = “插入为CustomerDetails(客户名称,CustomerAddress,省,国家,******中国)VALUES( 'DummyValue', 'DummyValue', '德里', '印度', '123459')” ;

db.ExecuteQuery(insertStatement);

db。的SubmitChanges();

希望这可以帮到你

相关问题