0

我想知道如何使用 LINQ (C#) 执行以下操作。所有帮助将不胜感激,谢谢。

DECLARE @productId int

INSERT INTO product(title, studioId, developerId, publisherId, releasedateUK, releasedateUS, certUK, certUS, dateAdded, pageSlug)
VALUES (@title, @studioId, @developerId, @publisherId, CONVERT(Date, @releaseDateUK, 103), CONVERT(Date, @releaseDateUS, 103), @certUK, @certUS, GETDATE(), @Slug)
SET @productId = SCOPE_IDENTITY()   

--Insert Product Details

INSERT INTO productDetails(productId, is3D, is4K, isTriplePlay, hasDVD, hasDigital, running, regiona, regionb, regionc, releaseYear, synopsis, imdbrating)
VALUES (@productId, @is3D, @is4K, @isTriplePlay, @hasDVD, @hasDigital, @runningTime, @regiona, @regionb, @regionc, @releaseYear, @synopsis, @imdbrating)

更新:这是来自我编写的 SPROC,我基本上需要插入一个产品,获取该 ID,然后我也可以插入其他表。

4

2 回答 2

1

我会做这样的事情......假设 Product 和 ProductDetails 是一对多的。

如果是一对一的,那么您可能只需设置 product.ProductDetail = new ProductDetail{};

var ctx = new DataBaseContext();

    var product =  new Product{
        Title  = "Title",
        etc..
        etc...
    };



    product.ProductDetails.Add(new ProductDetail{
        is4K = true,
        etc..
        etc..
    });
    ctx.Products.InsertOnSubmit(product);
    ctx.SubmitChanges();
于 2013-05-23T17:53:08.093 回答
1

首先,您需要一个 DataContext,它将您的数据库表示为 Linq 对象。

请参阅此处:如何:将 LINQ to SQL 类添加到项目
或此处:演练:创建 LINQ to SQL 类

在 DataContext 中,您会为数据库中的每个表找到一个实体。当您现在要在数据库中创建新行时,您首先需要从您的实体创建一个新实例。

Product newProduct = new Product( );
newProduct.Title = "Your own title";
newProduct.StudioId = 1234;
[...]

当你准备好用你的数据填充你的实体时,你将它传递到你的 dataContext 中。

YourDataContext.Products.InsertOnSubmit( newProduct );

最后你提交你的更改:

YourDataContext.SubmitChanges( );

我推荐一点阅读:使用 Linq to SQL101 个 LINQ 示例

(也许它有点过时了,因为它是从 2007 年开始的,但你明白了)

于 2013-05-23T15:56:56.953 回答