1

私のコード ファースト クラスには 1:m の関係があります。私のビューの注文インスタンスは、一意の OrderID を持つ値を表示します。1 人の Customer が多数の注文を持つ可能性があるため、このビューでは外部キー CustID は一意ではありません。

public class Customers
{

    public int CustomerID { get; set; }


    [StringLength(50, ErrorMessage = "{0} cannot exceed {1} characters")]
    public string LastName { get; set; }
    public string Initials { get; set; }

    public string email {get; set;}
   public List<Orders> orders { get; set; }
}

注文クラス:

public class Orders
{

        [Key]
        public int OrdersID { get; set; }
        public int OrderName { get; set; }
        public int? CustomerID { get; set; }
        public virtual Customers customer { get; set; }

}

以下は私のコントローラーです:

 private custContext db = new custContext();

    //
    // GET: /cust/

    public ViewResult Index()
    {
        var cust = db.orders.Include(c => c.customer).Take(10);
        return View(cust.ToList());
    }

OrderNamesが同じビューに表示されている別の顧客のみをビューに表示するにはどうすればよいですか?

4

3 に答える 3

1

命名規則に準拠するように、クラスと属性の名前を変更することを検討する必要があります。Order の代わりに public class Order ... のような単数形の名前を使用します。すべてのフィールドの主キー名として Id を使用します。すべての属性を大文字 (パスカル ケース) で始めます。これにより、フレームワークがモデルを理解するのに役立ちます。

必要なデータを取得するには、次を使用します。

var cust = db.Customers.Include("orders").Take(10);

規約を変更すると、次のようになります。

var cust = db.Customers.Include("Orders").Take(10);

データ コンテキストで DbSet をセットアップする必要がありますが、db.Orders を使用しているため、既にこれを理解しているようです。とにかく、ここにコードがあります(顧客が単数形に変換されています):

public DbSet<Customer> Customers { get; set; }
于 2012-11-23T07:56:28.890 に答える
0
public ViewResult Index()
    {
        var cust = db.Customers.get().Select(x => new Customers
                {
                    CustomerID = x.CustomerID,
                    OrderName = x.Orders.OrderName,
                });
        return View(cust.Take(10).ToList());
    }

意見:

@model IList<ProjectName.Customers>

foreach(var c in Model)
{
@Html.DisplayFor(modelItem => c.OrderName) 
}
于 2012-11-23T08:32:52.067 に答える
0

ビュー内 : ... から開始

@model IList<ProjectName.Customers>

複数のレコードをバインドする場合

foreach(var c in Model)
{
@Html.DisplayFor(modelItem => c.OrderName) 
}

さもないと@model.Orders.OrderNames....

于 2012-11-23T07:11:46.233 に答える