あなたは問題のオブジェクトまたはオブジェクトを照会するには、式ツリーを構築できます。
public T GetSingleObject<T>(int someValue) {
MyEntities db = new MyEntities();
var result = db.CreateQuery<T>(String.Format("[{0}]", typeof(T).Name + "s"));
var param = Expression.Parameter(typeof(T));
var lambda = Expression.Lambda<Func<T, bool>>(
Expression.Equal(
Expression.Property(param, "WhateverPropertyYourComparing"),
Expression.Constant(someValue)),
param);
return result.SingleOrDefault(lambda);
}
またはご希望のクエリが非常にある場合は、もちろん
public IEnumerable<T> GetResultCollection<T>(int someValue) {
MyEntities db = new MyEntities();
var result = db.CreateQuery<T>(String.Format("[{0}]", typeof(T).Name + "s"));
var param = Expression.Parameter(typeof(T));
var lambda = Expression.Lambda<Func<T, bool>>(
Expression.Equal(
Expression.Property(param, "WhateverPropertyYourComparing"),
Expression.Constant(someValue)),
param);
return result.Where(lambda);
}
オブジェクトのコレクションをしたい場合これは手を抜くことができ、Justin Morganが提案したように、部分クラスを使用して必要なインタフェースを追加することを検討する必要があります。
このメソッドは、ObjectSetコレクションがオブジェクトと同じ名前であり、 "Invoice"から "Invoice"への "s"を加えたものであることを前提としています。それが「Person」から「People」ではない場合は、System.Data.Entity.Design.PluralizationServices.PluralizationServiceを使用して適切な名前を取得することができます。