エンティティタイプ、主キーの名前、およびプライマリIDのGUIDがあります。LinqToSqlでそのようなIDの要素を取得したいと思います。
model.GetTable<T>().Where(t => here equality );
その式を自分で生成する必要があると思いますが、方法がわかりません:(
エンティティタイプ、主キーの名前、およびプライマリIDのGUIDがあります。LinqToSqlでそのようなIDの要素を取得したいと思います。
model.GetTable<T>().Where(t => here equality );
その式を自分で生成する必要があると思いますが、方法がわかりません:(
調査結果!見てください!
楽しみにしていて、コンパイラコードによって生成されたものを検索した後、Reflectorでこのラムダの作成を見つけました。
public static T GetById(Guid id)
{
Type entType = typeof(T);
if (!CheckTable(entType)) {
throw new TypeLoadException(string.Format(
"{0} is not Table Entity, has no attribute Table", entType.FullName));
}
string property = GetPrimaryKeyName(entType).Name;
ParameterExpression cs;
var lambda = Expression.Lambda<Func<Personal, bool>>(
Expression.Equal(
Expression.Property(
cs = Expression.Parameter(typeof(T), "p"),
entType.GetProperty(property).GetGetMethod()
),
Expression.Constant(id),
false,
typeof(Guid).GetMethod("Equals")
), new ParameterExpression[] { cs }
);
return Connection.Model.GetTable<T>().Single(lambda);
}
必要なものですが、コンパイラの例外があります。
エラー5メソッド'System.Linq.Enumerable.Single(System.Collections.Generic.IEnumerable、System.Func)'の型引数を使用法から推測できません。タイプ引数を明示的に指定してみてください。D:\ Projects \ Own \ Yabeda \ Source \ trunk \ med \ Yabeda.Med.Mvc \ Data \ Opera.cs 48 20 Yabeda.Med.Mvc
このエラーの意味がわかりません!