001*_*001 5 c# database postgresql entity-framework-core asp.net-core
表格
Product
-Id (PK)
-Name
ProductExtension
-ProductId (PK)
-Notes
Run Code Online (Sandbox Code Playgroud)
分配并插入记录
Product product = new Product();
product.Name = "Phone";
ProductExtension = productExtension = new ProductExtension();
productExtension.ProductId = product.Id;
productExtension.Notes = "some notes";
//Add and save
context.Products.Add(product);
context.ProductExtensions.Add(productExtension);
context.SaveChangesAsync();
Run Code Online (Sandbox Code Playgroud)
错误:
PostgresException:23503:表“product_extension”的插入或更新违反了外键约束“FK_product_extension_product_product_id”
因此,产品不是首先创建的,产品 ID 分配给我是否需要为每个表productextesion.productid?执行Addand操作?SaveChanges:(
使用导航属性或之前保存,以便 EF Core 可以填充主键(仅在保存实体后发生)。
public class ProductExtension
{
public int ProductId { get; set; }
public Product Product { get; set; }
public string Notes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在你可以使用
Product product = new Product();
product.Name = "Phone";
ProductExtension = productExtension = new ProductExtension();
// assign the whole model to the navigation property
productExtension.Product = product;
productExtension.Notes = "some notes";
// no need for this anymore
// context.Products.Add(product);
//Add and save
context.ProductExtensions.Add(productExtension);
context.SaveChangesAsync();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13804 次 |
| 最近记录: |