: 당신이 객체
물론
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);
}
의 컬렉션을 원하는 경우
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);
}
가 또는 원하는 쿼리가 매우 경우 오랜 시간이 걸릴 수 있습니다. Justin Morgan이 제안했듯이 부분 클래스를 사용하여 필요한 인터페이스를 추가하는 것을 고려해야합니다.
이 메서드는 ObjectSet 컬렉션이 개체와 동일한 이름이고 "Invoice"에서 "Invoice"까지의 "s"를 더한 것으로 가정합니다. 그것이 "Person"에서 "People"이 아닌 경우, System.Data.Entity.Design.PluralizationServices.PluralizationService를 사용하여 적절한 이름을 얻을 수 있습니다.