【问题标题】:A problem with the foreign key using Entity-Framework使用实体框架的外键问题
【发布时间】:2020-10-12 01:57:51
【问题描述】:

我使用实体框架并拥有这两个类:

[Table("Client")]
public class Client
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long ClientCode { get; set; }

public string Nombre { get; set; }
}

[Table("Product")]
public class Product
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string CodProd { get; set; }

[StringLength(80)]
public string NameProd { get; set; 

public Client Client { get; set; };
}

我实例化了一个这样的新产品:

Product prod = new Product
            {
                CodProd = "Code",
                NameProd = "Name",
                Client = new Client { ClientCode = 12345678 }
            };

db.Products.Add(prod);
db.SaveChanges();

当我添加并保存此对象时,不会将其记录在数据库中,但如果我在 Client 属性中使用 NULL 值实例化产品,则会出现但具有该 NULL 值。 我不知道为什么会这样……

【问题讨论】:

    标签: c# sql visual-studio entity-framework entity


    【解决方案1】:

    假设您在 ClientProduct 之间存在一对多关系,您的代码应如下所示:

    [Table("Client")]
    public class Client
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public long ClientCode { get; set; }
    
        public string Nombre { get; set; }
    
        public virtual ICollection<Product> Products { get; set; }
    }
    
    [Table("Product")]
    public class Product
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public string CodProd { get; set; }
    
        [StringLength(80)]
        public string NameProd
        {
            get; set;
        }
    
        [ForeignKey("Client")]
        public long ClientCode { get; set; } //foreign key property
    
        public virtual Client Client { get; set; } //navigation property
    }
    

    然后

    Product prod = new Product
                {
                    CodProd = "Code",
                    NameProd = "Name",
                    ClientCode = 12345678
                };
    
    db.Products.Add(prod);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多