मैं पहली बार ईएफ कोर की कोशिश कर रहा हूं और अपने पैरों को गीला करने के लिए एक बहुत ही सरल एमवीसी ऐप को कोड किया है। मैं UnicornStore project में डेटाबेस को बीजिंग के लिए एक विधि का उपयोग कर रहा हूं, जहां वे डेटाबेस को माइग्रेट करने के लिए Startup.cs
में कुछ कोड लिखते हैं और फिर बीज विधि चलाते हैं। कोड -विजुअल स्टूडियो मुझे क्यों बता रहा है मुझे सिस्टम को संदर्भित करने की आवश्यकता है। निजी.कोरीलिब?
using System;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
namespace UnicornStore.Models
{
public static class DbContextExtensions
{
public static bool AllMigrationsApplied(this DbContext context)
{
var applied = context.GetService<IHistoryRepository>()
.GetAppliedMigrations()
.Select(m => m.MigrationId);
var total = context.GetService<IMigrationsAssembly>()
.Migrations
.Select(m => m.Key);
return !total.Except(applied).Any();
}
}
}
मैं अपने आवेदन में यह एक ही विधि डाल दिया है और सब कुछ काम करता है:
इससे पहले कि वे बीज विधि कॉल, वे इस DbContext
विस्तार विधि की जाँच करने के चलाते हैं सभी माइग्रेशन लागू किया गया है संकलन और डेटाबेस माइग्रेट और बीजित है। ,
मॉड्यूल 'System.Private.CoreLib संस्करण = 4.0:
context.GetService<IMigrationsAssembly>() .Migrations .Select(m => m.Key);
अगर मैं लाल रेखा पर होवर करें, यह मुझसे कहता है: हालांकि, दृश्य स्टूडियो (2017 एंटरप्राइज़) लाल रेखांकित इस लाइन है .0.0, संस्कृति = तटस्थ, PublicKeyToken = foo '
संदर्भित किया जाना चाहिए
किसी को भी मुझे बता सकते हैं क्यों मैं इस संदेश को मिल रहा है? मैंने वास्तव में System.Private.CoreLib
का संदर्भ जोड़ने का प्रयास किया कि क्या होगा, और इससे त्रुटियों का एक टन (अपरिभाषित System.Object
, आदि) का कारण बन गया। अगर मैं बाद में मुझे काटने के लिए वापस आ जाता हूं तो मैं इस तरह की अनसुलझी चीज़ों को छोड़कर कभी भी आरामदायक नहीं हूं, इसलिए कोई संकल्प (या एक पुष्टि जो मैं इसे छोड़ सकता हूं और संदेश को अनदेखा कर सकता हूं) की सराहना की जाएगी!
इसके लिए धन्यवाद! ऐसा लगता है कि चाल चल रही है! – Jim