Estoy usando un patrón de repositorio con LINQ, tengo IRepository.DeleteOnSubmit (T Entity). Funciona bien, pero cuando mi clase de entidad tiene interfaz, como esto:LINQ, entidad que implementa Interfaz y excepción en el mapeo
public interface IEntity { int ID {get;set;} }
public partial class MyEntity: IEntity {
public int ID {
get { return this.IDfield; }
set { this.IDfield=value; }
}
}
y luego intentar eliminar una entidad como esta:
IEntity ie=repository.GetByID(1);
repoitory.DeleteOnSubmit(ie);
tiros
El miembro IEntity.ID 'tiene no hay traducción soportada a SQL.
recuperar datos de la base de datos funciona, pero eliminar e insertar no. ¿Cómo usar la interfaz contra DataContext?
Aquí está:
mensaje Excepción: El miembro MMRI.DAL.ITag.idContent 'no tiene traducción apoyado a SQL.
Código:
var d = repContent.GetAll().Where(x => x.idContent.Equals(idContent));
foreach (var tagConnect in d) <- error line
{
repContet.DeleteOnSubmit(tagConnect);
(se pone todas las etiquetas de DB, y los borra)
y seguimiento de la pila:
[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(...
Cuando intento hacer decorar clase parcial:
[Column(Storage = "_idEvent", DbType = "Int NOT NULL", IsPrimaryKey = true)]
public int idContent
{ get { return this.idEvent; } set { this.idEvent=value; } }
it arroja el error "Nombre de columna inválido 'idContent'."
Desbordamiento de pila no es un foro. Algunas de las cosas que usted (y otros) publicaron como "Respuesta" a la pregunta en realidad deberían ser "comentarios". También puede editar la pregunta original y cualquier respuesta. – jeroenh