开发者

C# - Entity Framework inserting

开发者 https://www.devze.com 2023-03-31 06:31 出处:网络
I have two tables Category and Product and I would like to insert products into categories. The table relation between these tables is one开发者_JAVA百科 to zeor or one.

I have two tables Category and Product and I would like to insert products into categories. The table relation between these tables is one开发者_JAVA百科 to zeor or one.

Category table:

CID : integer,
CategoryName : varchar,

Product table:

CID: integer, // foreign key to category table.
ProductName: varchar,
UnitsInstock: integer,

How can I write a simple query for inserting a product into the ProductTable? How do I handle the foriegn key situation? If the categoryid does not exists then the product should not be inserted.

I would realy appreciate any kinds of help.


One approach could be this one:

int categoryIdOfNewProduct = 123;
using (var context = new MyContext())
{
    bool categoryExists = context.Categories
        .Any(c => c.Id == categoryIdOfNewProduct);

    if (categoryExists)
    {
        var newProduct = new Product
        {
            Name = "New Product",
            CategoryId = categoryIdOfNewProduct,
            // other properties
        };

        context.Products.Add(newProduct); // EF 4.1
        context.SaveChanges();
    }
    else
    {
        //Perhaps some message to user that category doesn't exist? Or Log entry?
    }
}

It assumes that you have a foreign key property CategoryId on your Product entity. If you don't have one please specify more details.


Normally a category to product would be many to one, but I would suggest studying the basics of Linq to Sql first:

http://msdn.microsoft.com/en-us/library/bb425822.aspx

Linq to Sql 101

Learn the Entity Framework

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号