मैं ईएफ में एक-से-एक एसोसिएशन प्राप्त करने के लिए foreign key association दृष्टिकोण का उपयोग करने का प्रयास कर रहा हूं। मेरे मामले में उपयोगकर्ता और टीम के बीच एक संबंध है, और मुझे उनमें से प्रत्येक में एक नेविगेशन संपत्ति की आवश्यकता है। डेटा बचाने के लिए प्रयास करते समय मैंने एक समस्या में उछाल दिया।एंटिटी फ्रेमवर्क एक-से-एक संगठनों में डेटा सहेजना
यह वह जगह है मॉडल कैसे दिखाई देते हैं:
public class Team
{
public int ID { get; set; }
public string Name { get; set; }
public int OwnerID { get; set; }
public virtual User Owner { get; set; }
}
public class User
{
public int ID { get; set; }
public string UserName { get; set; }
public int TeamID { get; set; }
public virtual Team Team { get; set; }
}
मैं के रूप में ब्लॉग पोस्ट ऊपर संदर्भित में निर्देश दिए, DbContext
OnModelCreating()
करने के लिए इन बिट्स कहा:
modelBuilder.Entity<User>()
.HasRequired(u => u.Team)
.WithMany()
.HasForeignKey(u => u.TeamID);
modelBuilder.Entity<Team>()
.HasRequired(t => t.Owner)
.WithMany()
.HasForeignKey(t => t.OwnerID)
.WillCascadeOnDelete(false);
और अब जब जैसा डेटा जोड़कर यह:
User u = new User();
u.UserName = "farinha";
Team t = new Team("Flour Power");
u.Team = t;
t.Owner = u;
context.Users.Add(u);
context.Teams.Add(t);
context.SaveChanges();
या यहां तक कि इस तरह:
User u = new User();
u.UserName = "farinha";
u.Team = new Team("Flour Power");
context.Users.Add(u);
context.SaveChanges();
मैं निम्न त्रुटि हो रही है:
Unable to determine a valid ordering for dependent operations. Dependencies may exist due to foreign key constraints, model requirements, or store-generated values.
यह कैसे हल करने के लिए के किसी भी विचार? क्या मैं डेटा को गलत तरीके से सहेज रहा हूं?
अग्रिम
@ ladislav-mrnka जो त्रुटि को 'शून्य' कॉलम 'टीमआईडी', तालिका 'DeuceHigh.dbo.User' में परिवर्तित नहीं कर सकता है; कॉलम नल की अनुमति नहीं देता है। INSERT विफल रहता है। कथन समाप्त कर दिया गया है। – Farinha
@ फ़ारन्हा जब से आप मॉडल बदल गए, क्या आपने डेटाबेस तालिका भी अपडेट की है? – DDiVita
@ फ़ारन्हा: यह डेटाबेस स्तर त्रुटि है जिसका अर्थ है कि उपयोगकर्ता तालिका में टीमआईडी अभी भी शून्य नहीं है। आपने डेटाबेस को फिर से बनाया या संशोधित नहीं किया है। –