Ich verwende Repository-Muster mit LINQ, IRepository.DeleteOnSubmit (T-Entität). Es funktioniert gut, aber wenn meine Entitätsklasse Schnittstelle hat, wie folgt aus:LINQ, Entität, die Schnittstelle und Ausnahme in Zuordnung implementiert
public interface IEntity { int ID {get;set;} }
public partial class MyEntity: IEntity {
public int ID {
get { return this.IDfield; }
set { this.IDfield=value; }
}
}
und dann versuchen, einige Unternehmen wie diese zu löschen:
IEntity ie=repository.GetByID(1);
repoitory.DeleteOnSubmit(ie);
wirft
Das Mitglied ‚IEntity.ID‘ hat keine unterstützte Übersetzung in SQL.
holen Daten aus DB funktioniert, aber löschen und einfügen nicht. Wie benutzt man die Schnittstelle gegen DataContext?
Hier ist sie:
Ausnahmemeldung: Das Mitglied 'MMRI.DAL.ITag.idContent' hat keine unterstützte Übersetzung zu SQL.
Code:
var d = repContent.GetAll().Where(x => x.idContent.Equals(idContent));
foreach (var tagConnect in d) <- error line
{
repContet.DeleteOnSubmit(tagConnect);
(es alle Tags von DB bekommt, und löscht sie)
Und Stack-Trace:
[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(...
Wenn ich versuche, Teil-Klasse tun dekorieren:
[Column(Storage = "_idEvent", DbType = "Int NOT NULL", IsPrimaryKey = true)]
public int idContent
{ get { return this.idEvent; } set { this.idEvent=value; } }
es Fehler "Ungültiger Spaltenname 'idContent'."
Stack Overflow ist kein Forum. Einige der Dinge, die Sie (und andere) als "Antwort" auf die Frage gepostet haben, sollten eigentlich "Kommentare" sein. Sie können auch die ursprüngliche Frage und jede Antwort bearbeiten. – jeroenh