के बाद एक-से-एक मॉडल, दोनों के साथ नेविगेशन गुण के साथ: -ईएफ - साथ-साथ - बाएं बाहरी शामिल हों?
public class Foo
{
public int Id { get; set; }
public virtual Bar Bar { get; set; }
}
public class Bar
{
public int Id { get; set; }
public virtual Foo Foo { get; set; }
}
फू एक वैकल्पिक बार है।
बार एक आवश्यक Foo है।
मैं बारपर निम्नलिखित मानचित्रण है: -
HasRequired(x => x.Foo)
.WithOptional(x => x.Bar)
.Map(x => x.MapKey("FooId"));
कौन सा बार नामित मेज पर विदेशी कुंजी बनाता है 'FooId'।
यह सब, ठीक काम करता है सिवाय इसके कि इसे जब इसकी जरूरत नहीं के साथ एक बार करने के लिए 'वाम बाहरी शामिल' सभी प्रश्नों पर फू के लिए एसक्यूएल उत्पन्न करता है।
SELECT ..
[Extent2].[Id] AS [Id1]
FROM [dbo].[Foo] AS [Extent1]
LEFT OUTER JOIN [dbo].[Bar] AS [Extent2] ON [Extent1].[Id] = [Extent2].[FooId]
करीब देखकर यह बार की आईडी लौटाता है।
Searching ढेर मैं अधिकांश सुझाव .WithOptional
के बजाय .WithMany
उपयोग करने के लिए देख सकते हैं, लेकिन मैं नेविगेशन गुण की जरूरत है।
कोई सुझाव?
यदि आप इसके बारे में सोचते हैं, तो वास्तव में 1: 1 जैसी कोई चीज़ नहीं है, जब तक कि आप एक साझा प्राथमिक कुंजी नहीं कर रहे हैं, क्योंकि कुंजी उनकी प्रकृति से अद्वितीय होनी चाहिए। निश्चित रूप से, आप प्रभावी 1: 1 बनाने के लिए 1: * पर एक अनन्य बाधा डाल सकते हैं, लेकिन यह एक प्रकार का "आभासी" 1: 1 है और वास्तविक भौतिक नहीं है।ईएफ इस तरह की बाधाओं का समर्थन नहीं करता है, इसलिए यह वास्तव में संभव नहीं है। यही कारण है कि इसमें शामिल है, क्योंकि ईएफ केवल यह मान सकता है कि यह 1 है: * –