【问题标题】:Code First Entity Framework disallows access to tableCode First Entity Framework 不允许访问表
【发布时间】:2012-05-27 09:22:16
【问题描述】:

我正在尝试首先使用代码为 asp.net mvc 应用程序生成数据库。 OrderItem 类确实在数据库中生成为 OrderItems 表,但我最终无法访问它。例如,我该怎么做才能允许以下内容:db.OrderItems.Find(id);

型号如下:

namespace CustomerOrders.Models{

public class Customer
{

    public virtual int  CustomerID { get; set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
    public virtual string Company { get; set; }
    public virtual string Email { get; set; }
    public virtual string EmailCheck { get; set; }
}

public class Order
{
    public virtual int OrderID { get; set; }
    public virtual int CustomerID { get; set; }
    public virtual DateTime OrderDate { get; set; }
    public virtual double OrderTotal { get; set; }
    public virtual double Tax { get; set; }
    public virtual Customer Customer { get; set; }
    public virtual List<OrderItem> OrderItems { get; set; }
}

public class OrderItem
{
    public virtual int OrderItemID { get; set; }
    public virtual int OrderID { get; set; }
    public virtual int ProductID { get; set; }
    public virtual double PricePerItem { get; set; }
    public virtual double Quantity { get; set; }
    public virtual Product Product { get; set; }
    public Order Order { get; set; }
}

public class Product
{
    public virtual int ProductID { get; set; }
    public virtual string Title { get; set; }
    public virtual string Description { get; set; }
    public virtual double Price { get; set; }
}
}

【问题讨论】:

  • 有什么问题?数据库中有数据吗? db.OrderItems.Find(id);只是抛出一个异常?
  • 也许会展示您如何创建 dbcontext 的代码以及您如何尝试使用它的代码?
  • OrderItems 表是不可访问的,它不会显示在智能感知中,所有其他表都可以通过代码作为属性访问。
  • 您是否将其正确添加到 DbContext 中?
  • 我已经说过了,给我们实际的代码。。这样猜测原因是没有用的。

标签: c# asp.net asp.net-mvc entity-framework ef-code-first


【解决方案1】:

您的 dbContext 中可能没有声明,因此打开 dbContext 并添加以下内容: public DbSet&lt;OrderItem&gt; OrderItems { get; set; }

你应该得到这个:

public class CustomerOrdersDB : DbContext
{
    public DbSet<Order> Orders { get; set; }

    public DbSet<Customer> Customers { get; set; }

    public DbSet<Product> Products { get; set; }

    public DbSet<OrderItem> OrderItems { get; set; }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2023-04-11
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多