Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EntityFramework一对一或零_C#_Entity Framework - Fatal编程技术网

C# EntityFramework一对一或零

C# EntityFramework一对一或零,c#,entity-framework,C#,Entity Framework,我的“ShoppingCart”和“ShoppingCartItems”表已经在我的数据库中。我正在尝试添加一个名为“折扣代码”的新表。每个购物车可以有一个或零个折扣码 我收到的错误是:列名“discountId”无效 [Table("ShoppingCarts")] public class ShoppingCart { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Ide

我的“ShoppingCart”和“ShoppingCartItems”表已经在我的数据库中。我正在尝试添加一个名为“折扣代码”的新表。每个购物车可以有一个或零个折扣码

我收到的错误是:列名“discountId”无效

[Table("ShoppingCarts")]
    public class ShoppingCart
    {


        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        [Column("cartID")]
        public string cartID { get; set; }
        public virtual IList<ShoppingCartItem> CartItems { get; set; }
        [Column("dateCreated")]
        public DateTime? DateCreated { get; set; }
        [Column("userID")]
        public Guid UserID { get; set; }
        public int? discountId { get; set; }
        public virtual Discount discount { get; set; }
    }

    [Table("discountCodes")]
    public class Discount
    {

        public int discountId { get; set; }
        public string discountCode{get;set;}
        [Required]
        public int percentOff { get; set; }
        [Required]
        public Boolean isActive { get; set; }
        public  ShoppingCart ShoppingCart { get; set; }

    }
public class ShoppingCartContext : DbContext
{

    public ShoppingCartContext()
        : base("MYDBConnectionString")
    {
        Database.SetInitializer<ShoppingCartContext>(new CreateDatabaseIfNotExists<ShoppingCartContext>());

    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<ShoppingCart>().HasKey(t => t.cartID)
                     .HasOptional(t => t.discount)
                     .WithOptionalPrincipal(d => d.ShoppingCart)
                     .Map(t => t.MapKey("cartID")); 
        modelBuilder.Entity<Discount>().HasKey(t => t.discountId)
                    .HasOptional(q => q.ShoppingCart);
    }   
    public DbSet<Discount> discountCodes { get; set; }
    public DbSet<ShoppingCart> ShoppingCart { get; set; }
    public DbSet<ShoppingCartItem> ShoppingCartItems { get; set; }

}
[表(“购物车”)]
公共类购物车
{
[关键]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
[列(“cartID”)]
公共字符串cartID{get;set;}
公共虚拟IList目录项{get;set;}
[列(“日期创建”)]
公共日期时间?DateCreated{get;set;}
[列(“用户ID”)]
公共Guid用户标识{get;set;}
公共int?折扣ID{get;set;}
公共虚拟折扣{get;set;}
}
[表(“折扣代码”)]
公务舱折扣
{
公共整数折扣ID{get;set;}
公共字符串折扣代码{get;set;}
[必需]
公共整数百分比{get;set;}
[必需]
公共布尔isActive{get;set;}
公共购物车购物车{get;set;}
}
公共类ShoppingCartContext:DbContext
{
公共ShoppingCartContext()
:base(“MYDBConnectionString”)
{
SetInitializer(新的CreateDatabaseIfNotExists());
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().HasKey(t=>t.cartID)
.has可选(t=>t.折扣)
.WithOptionalPrincipal(d=>d.ShoppingCart)
.Map(t=>t.MapKey(“cartID”);
modelBuilder.Entity().HasKey(t=>t.discountId)
.has可选(q=>q.ShoppingCart);
}   
公共DbSet折扣代码{get;set;}
公共DbSet ShoppingCart{get;set;}
公共数据库集ShoppingCartItems{get;set;}
}

如果您正在处理现有数据库,则必须实现
DbMigration
,如下所示:


如果您正处于开发阶段,最简单的方法就是删除数据库。

数据库中折扣栏的名称是什么?您没有指定列名,因此它假定名称与属性相同。是的,discountId是标识列。那么数据库表是什么样子的呢?什么时候会出现这个错误?我使用的是代码优先。数据库是从这些类生成的。但是何时收到错误?在尝试插入之后?在初始化期间?