테이블에 엔티티를 삽입하는 메소드가 있습니다. 그러나 추가 할 엔티티가 존재하는지 확인하는 기능을 추가하고 싶습니다. 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'이 필요합니다. –