0
私は、その識別子でオブジェクトを取得するための配管を書いています。その背後では、GetObjectByKeyまたはTryGetObjectByKeyを使用して、EntityKeyによってオブジェクトを取得します。このオブジェクトは構築できます。 LINQ to SQLにはこれと同等の機能がありますか?ADO.NET EFのGetObjectByKeyに相当するLINQ-to-SQL
ありがとうございました。
私は、その識別子でオブジェクトを取得するための配管を書いています。その背後では、GetObjectByKeyまたはTryGetObjectByKeyを使用して、EntityKeyによってオブジェクトを取得します。このオブジェクトは構築できます。 LINQ to SQLにはこれと同等の機能がありますか?ADO.NET EFのGetObjectByKeyに相当するLINQ-to-SQL
ありがとうございました。
ここで私が使用してきたものだ:
public virtual TEntity GetById(int id)
{
var table = DataContext.GetTable<TEntity>();
var mapping = DataContext.Mapping.GetTable(typeof(TEntity));
var idProperty = mapping.RowType.DataMembers.SingleOrDefault(d => d.IsPrimaryKey);
var param = Expression.Parameter(typeof(TEntity), "e");
var predicate = Expression.Lambda<Func<TEntity, bool>>(Expression.Equal(
Expression.Property(param, idProperty.Name), Expression.Constant(id)), param);
return table.SingleOrDefault(predicate);
}
私はこのようになりますジェネリックRepository
クラス内、このメソッドを使用しています:
public class Repository<TDataContext, TEntity> : IDisposable
where TDataContext : DataContext
where TEntity : class
{
protected TDataContext DataContext { get; private set; }
public Repository(TDataContext dataContext)
{
DataContext = dataContext;
}
...
}