0

ASP.NET4.0を使用してWebアプリケーションを開発しています。私はデータベースSQLServer2005を持っており、それに接続するEntityFramework5を使用しています。

public class ArchivioClienti : DbContext
{
    public ArchivioClienti()
        : base("ICAMConnection")
    {
    }

    public DbSet<ClientiProspect> clienti { get; set; }
}        
[Table("pvw_clienti_prospect")]
public class ClientiProspect
{
    [Key]
    public string tipologia { get; set; } 
    public string cod_ppro { get; set; }
    public string rag_soc { get; set; }
    public string indirizzo { get; set; }
    public string cap { get; set; }
    public string citta { get; set; }
    public string prov { get; set; }
    public string nazione { get; set; }
    public string telefono { get; set; }
    public string fax { get; set; }
    public string part_iva { get; set; }
    public string cod_fisc { get; set; }
    public string note { get; set; }
    public string e_mail { get; set; }
    public string cod_ppro_anag { get; set; }
    public string cod_vage { get; set; }
    public string cod_visp { get; set; }
    public string fonte { get; set; }
    public string cod_vzon { get; set; }
    public decimal perc_provv { get; set; }
    public string flag_stato { get; set; }
    public string cod_anag { get; set; }
    public string gg_chiusura { get; set; }
    public DateTime? data_ins { get; set; }
    public string cod_canale { get; set; }

}

テーブルからデータを取得しようとしています。これは実際にはテーブルではなく、ビューにすぎません。LINQを使用してクエリを読み込むと、

var result = from u in dbClienti.clienti
             select u;

return result.ToList()

正しい数の結果(SQL Server Management Studioで同じクエリを使用して受け取るものと同じ)を受け取りますが、フィールドが間違っています。最初の結果は複数回複製され、2番目の結果は同じです。

なぜこのように機能しているのですか?データベースのビューを持つEntityFrameworkに問題はありますか?

4

1 に答える 1

0

ビューが正しく構成されており、Entity Frameworkの外部で実行すると正しい結果が返されると思いますか?

EntityFrameworkでテーブルの代わりにビューを使用しても問題はありません。SQL Profilerを実行して、クエリの実行時にEFが何をしているかを確認します。

于 2013-02-08T11:24:19.293 に答える