저는 LINQ와 함께 저장소 패턴을 사용하고 있습니다. IRepository.DeleteOnSubmit (T Entity)이 있습니다. 그것은 잘 작동하지만 내 엔티티 클래스가 같은 인터페이스가있는 경우 :매핑에서 인터페이스 및 예외를 구현하는 LINQ
IEntity ie=repository.GetByID(1);
repoitory.DeleteOnSubmit(ie);
이
'IEntity.ID이'이있는 구성원을 던졌습니다 :
public interface IEntity { int ID {get;set;} }
public partial class MyEntity: IEntity {
public int ID {
get { return this.IDfield; }
set { this.IDfield=value; }
}
}
을하고이 같은 일부 개체를 삭제하려고 SQL에 대한 지원되는 변환이 없습니다.
DB에서 데이터를 가져 오지만 삭제 및 삽입은 작동하지 않습니다. DataContext에 대한 인터페이스를 사용하는 방법? 여기
그것이 :
예외 메시지 : 멤버 'MMRI.DAL.ITag.idContent는'SQL에 지원되는 변환이 없습니다.
코드 :
var d = repContent.GetAll().Where(x => x.idContent.Equals(idContent));
foreach (var tagConnect in d) <- error line
{
repContet.DeleteOnSubmit(tagConnect);
(이 DB에서 모든 태그를 가져오고이를 삭제)
그리고 스택 추적 :
[NotSupportedException: The member 'MMRI.DAL.ITag.idContent' has no supported translation to SQL.]
System.Data.Linq.SqlClient.Visitor.VisitMember(SqlMember m) +621763
System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode node) +541
System.Data.Linq.SqlClient.SqlVisitor.VisitExpression(SqlExpression exp) +8
System.Data.Linq.SqlClient.SqlVisitor.VisitBinaryOperator(SqlBinary bo) +18
System.Data.Linq.SqlClient.Visitor.VisitBinaryOperator(SqlBinary bo) +18
System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode node) +196
System.Data.Linq.SqlClient.SqlVisitor.VisitExpression(SqlExpression exp) +8
System.Data.Linq.SqlClient.SqlVisitor.VisitSelectCore(SqlSelect select) +46
System.Data.Linq.SqlClient.Visitor.VisitSelect(SqlSelect select) +20
System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode node) +1024
System.Data.Linq.SqlClient.SqlProvider.BuildQuery(...
나는 부분 클래스를 장식 할 때 :
[Column(Storage = "_idEvent", DbType = "Int NOT NULL", IsPrimaryKey = true)]
public int idContent
{ get { return this.idEvent; } set { this.idEvent=value; } }
it 오류 "잘못된 열 이름 'idContent'."
스택 오버플로는 포럼이 아닙니다. 당신 (그리고 다른 사람들)이 질문에 "대답"으로 게시 한 것들 중 일부는 실제로 "주석"이어야합니다. 원래 질문과 답변을 편집 할 수도 있습니다. – jeroenh