0


私はEntity Frameworkを初めて使用しますが、手に入れようとしています。多くのブログを読んだ後、プロジェクトに実装する作業を開始しましたが、次の問題があります。

私はVS 2012を持っていて、バージョン4.0のプロジェクトに取り組んでいます。プロジェクトにファイル
を追加して、さらに4つのファイルを作成しましたDataModel.edmxDataModel.Context.tt , DataModel.Designer.cs , DataModel.edmx.diagram , DataModel.tt

この時点までは問題ないようです。しかし、Linq クエリでテーブル情報にアクセスしようとすると。インテリセンスは何も表示されません。

var context = new DataModelEntities();
var invoice = from c in context.Invoice select c.{//NOTHING SHOWING HERE};

DataModelEntities クラス (DataModel.Context.cs) は次のようになります。

namespace MySpace.Objects.DataModel
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class DataModelEntities : DbContext
    {
        public DataModelEntities()
            : base("name=KKEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public DbSet<Invoice> Invoice { get; set; }
        public DbSet<InvoiceContracts> InvoiceContracts { get; set; }
    }
}

Invoice クラスは次のようになります。

//----------- 
// <auto-generated> 
// This code was generated from a template. 
// 
// Manual changes to this file may cause unexpected behavior in your application. 
// Manual changes to this file will be overwritten if the code is regenerated. 
// </auto-generated> 
//-------- 
namespace MySpace.Objects.DataModel 
{ 
  using System; 
  using System.Collections.Generic; 

  public partial class Invoice
  {
     public int ID { get; set; }
     public int POID { get; set; }
  } 
}

何か不足している場合はお知らせください。

ありがとうございました...

4

2 に答える 2

0

IQueryable<Invoice>これは、(タイプ の)クエリ仕様のみです。

var invoiceQuery = from c in context.Invoice select c;

(invoiceQueryはここよりも適切な名前invoiceです。) これは実行されたクエリの結果ではなく、この時点でデータベースに送信されたクエリはありません。クエリの結果を取得するには、クエリを実行させる演算子ToList()( orFirstOrDefault()など) を適用する必要があります。

var invoices = invoiceQuery.ToList();

これはタイプList<Invoice>です。

于 2012-12-21T16:30:54.993 に答える
0

名前を変更

public DbSet<Invoice> Invoice { get; set; }

 public DbSet<Invoice> Invoices { get; set; }

それから試してください

var invoice =  c in context.Invoices.Select( c=>c.HERE)
于 2012-12-21T15:28:42.173 に答える