私は多くの関連エンティティを持つComplaintTypes
の操作を管理するリポジトリを持っています。すべてをロードしたくないので、私はLazyLoadingEnabled = true;
を持っています。しかし、私は関連するエンティティを1つロードしたいと思っています:ComplaintSubType
関連するエンティティを1つだけロードする
これは私のために働いていますが、もっと良い方法があると思いますか?ありがとう!更新
namespace Complaint.Dal.Repositories
{
public class ComplaintTypeRepository : RepositoryBase<ComplaintType>, IComplaintTypeRepository
{
#region ctor
/// <summary>
/// ctor
/// </summary>
/// <param name="objectContext"></param>
public ComplaintTypeRepository(IObjectContext objectContext)
: base(objectContext)
{
//Lazy Load so we don't get bloated data
objectContext.LazyLoadingEnabled = true;
}
#endregion
#region Implementation of IComplaintRepository
public IEnumerable<ComplaintType> GetAllComplaintTypes()
{
//Load the related SubTypes
var result = GetAll(t => t.PK_Type_Id);
foreach (var complaintType in result)
{
complaintType.ComplaintSubType.Load();
}
return result;
}
public ComplaintType GetComplaintType(int typeId)
{
var result = GetSingle(t => t.PK_Type_Id == typeId);
result.ComplaintSubType.Load();
return result;
}
public void UpdateComplaintType(ComplaintType entity)
{
Attach(entity);
}
#endregion
}
}
:
public IEnumerable<T> GetAll<TKey, TType>(Expression<Func<T, TKey>> orderBy)
{
var ret = ObjectSet;
//set Orderby
ret.OrderBy(orderBy);
return ret.ToList();
}
は申し訳ありませんが、私はn層のアーチを使用しています言及するのを忘れてしまいました。したがって、エンティティは添付されません。 – MisterIsaak
それでは、あなたに何を伝えるべきかを完全に理解するために、基本的なアーキテクチャー、GetAllとGetSingleメソッドをもっと見る必要があります。 –