2017-09-27 5 views
-1

私は方法があります:Entity Frameworkのジェネリックエンティティ

private static string doGeneric<T>(T DB, string xmlfilename, string headername, string prefix, string xpath) 

は、私はこのようにそれを呼び出す:

var res = doGeneric(new cou(), (string)p, "coudata", "cou", "//Cou/Item"); 
var res = doGeneric(new ttu(), (string)p, "ttuData", "ttu", "//Ttu/Item"); 
. 
. 
. 
var res = doGeneric(new xxu(), (string)p, "xxuData", "xxu", "//xxu/Item"); 

cou()ttu()xxuは、EFのフレームワーク(第一DB)によって生成されたEFのエンティティです。 doGeneric方法で

、私が持っている:

using (myEFEntity con = new myEFEntity()) 

私はこのような何かをしたい:

var cnt = con.DB.Count(); 

はどのように私はそれを行うことができますか?

+0

あなたはそのコードを書いてみましたか?何が起こるのですか?エラー? 'con.DB.count()'これはなんですか? –

+0

@Chetan Ranpariya DBが存在しないことを示すコンパイラエラー。私も試しました。それはどちらもうまくいかなかった。 DBはこの 'doGeneric (T DB、' ' – Zuzlx

答えて

1

あなたはDbContext.Set<TEntity> Methodで指定された型のDbSetを取得することができます。

は、コンテキストとその下にある店舗における特定のタイプのエンティティにアクセスするためのDbSet<TEntity>インスタンスを返します。あなたのケースでは

、あなたは動的doGeneric<T>内の以下を使用してDbSet<T>の数を得ることができる必要があります:

using (myEFEntity con = new myEFEntity()) 
{ 
    var cnt = con.Set<T>().Count(); 
}