在数据库创建中使用“公共虚拟”变量很困难

时间:2012-01-19 15:57:00

标签: asp.net-mvc-3 entity-framework database-design virtual

我使用以下代码在Visual Web Developer 2010 Express中创建两个表:

http://imgur.com/a/Mi2Bv(抱歉,由于有新帐户,论坛不会让我直接发布图片)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace BarApp.Models
{
    public class Drinks
    {
        public int DrinksId { get; set; }
        public int EstablishmentsID { get; set; }
        public string name { get; set; }
        public decimal price { get; set; }
        public string description { get; set; }
        public string image { get; set; }

        public virtual Establishments establishment { get; set; }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace BarApp.Models
{
    public class Promotions
    {
        public int PromotionsId { get; set; }
        public string name { get; set; }
        public float discount { get; set; }
        public int EstablishmentId { get; set; }
        public int DrinkId { get; set; }
        public string description { get; set; }

        public virtual Establishments establishment { get; set; }
        public virtual Drinks drink { get; set; }
    }
}

但是,当我查看创建的表时,Promotions表具有公共虚拟代码的实际行,而Drinks表则没有。

我可以按照我想要的方式在项目的其他地方使用Drinks表功能,但是我无法让Promotions以相同的方式运行,因为它看起来像#34; public virtual"在每张表中给出不同的结果。

我不明白为什么我的Promotions表实际上是为公共虚拟变量创建行。有人可以帮我理解吗?

1 个答案:

答案 0 :(得分:0)

在这种特殊情况下,我没有使用传统方式引用另一个表的Id字段。

我只需要更改以下内容:

public int EstablishmentId {get;组; } public int DrinkId {get;组; }

以下内容:

public int EstablishmentsId {get;组; } public int DrinksId {get;组; }

我的表格是在我做出此更改后按预期创建的。