मैपिंग में इंटरफ़ेस और अपवाद लागू करती है, मैं 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; }
}
}
और उसके बाद इस तरह की कुछ इकाई को हटाने का प्रयास एसक्यूएल में कोई समर्थित अनुवाद नहीं।
डीबी कार्यों से डेटा लाने, लेकिन हटाएं और डालें नहीं। DataContext के खिलाफ इंटरफ़ेस का उपयोग कैसे करें?
संदेश यह है:
अपवाद संदेश: सदस्य 'MMRI.DAL.ITag.idContent' एसक्यूएल के लिए कोई समर्थित अनुवाद है।
कोड:
var d = repContent.GetAll().Where(x => x.idContent.Equals(idContent));
foreach (var tagConnect in d) <- error line
{
repContet.DeleteOnSubmit(tagConnect);
(यह डीबी से सभी टैग हो जाता है, और उन्हें हटा देता है)
और स्टैक ट्रेस:
[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; } }
त्रुटि फेंकता है "अमान्य कॉलम नाम 'idContent'।"
स्टैक ओवरफ़्लो एक मंच नहीं है। प्रश्न में "उत्तर" के रूप में पोस्ट की गई कुछ चीज़ें (और अन्य) वास्तव में "टिप्पणियां" होनी चाहिए। आप मूल प्रश्न और कोई जवाब भी संपादित कर सकते हैं। – jeroenh