テーブルにエンティティを挿入する方法があります。 Matcherプロパティ(Nameなど)に基づくテーブル。コードを実行すると、チェックラインに 'SQLへの変換はサポートされていません'がスローされます。私のコード部分は以下の通りです。この問題を解決するにはどうすればよいですか?Linq一般的な挿入メソッドを使用すると、SQLスローにSQL例外へのサポートされた変換がありません
public static InsertStatus Add<T>(T ent, string matcherProp) where T : class
{
System.Data.Linq.Table<T> t = otdc.GetTable<T>();
//Exception on this line
if (t.Any(item => object.Equals(GetPropValue(item, matcherProp), GetPropValue(ent, matcherProp))))
return InsertStatus.AlreadyExists;
try
{
t.InsertOnSubmit(ent);
otdc.SubmitChanges();
return InsertStatus.Successfull;
}
catch
{
return InsertStatus.UnknownError;
}
}
public static object GetPropValue(object src, string propName)
{
return src.GetType().GetProperty(propName).GetValue(src, null);
}
GetPropValueをSQLに変換することはできません。 Linq-to-SQLプロバイダが理解できる 'Expression'が必要です。 –