بهترین فرصت آموزش در جشنواره تخفیف های توسینسو بهترین فرصت آموزش در جشنواره تخفیف های توسینسو
مانده تا پایان تخفیف ها
مشاهده دوره ها
0

ساخت دیتا بیس از طریق Code first ..??!

سلام دوستان من میخواستم یک دیتا بیس از طریق Code first ایجاد کنم ..

اما نمیدونم مشکلم کجاست ؟؟! و چرا به اروو میخوردم ؟؟ من کانکشن استیرنگ هم ب صورت زیر تعریف کردم .. دوستان میتونن راهنمایی کنن؟؟

ویا یک نمونه میخواستم دیتا بیس از طریق Code first برام بزارین ..

<connectionStrings>
        <add name="SchoolContext" connectionString="Data Source=.;Initial Catalog=SchoolContext;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
static void Main(string[] args)
        {
                 var ctx = new SchoolContext();
            
                Student stud = new Student() { StudentName = "New Student" };

                ctx.Students.Add(stud);
                ctx.SaveChanges();
            
        }
      
        public class SchoolContext : DbContext
        {
            public SchoolContext(): base()
            {

            }
            public DbSet<Student> Students { get; set; }
            public DbSet<Standard> Standards { get; set; }
        }
    
    public class Student
        {
            public Student()
            {

            }
            public int StudentID { get; set; }
            public string StudentName { get; set; }
            public DateTime DateOfBirth { get; set; }
            public byte[] Photo { get; set; }
            public decimal Height { get; set; }
            public float Weight { get; set; }

            public Teacher Teacher { get; set; }

            public Standard Standard { get; set; }
        }

          public class Standard
        {
            public Standard()
            {

            }
            public int StandardId { get; set; }
            public string StandardName { get; set; }

            public ICollection<Student> Students { get; set; }

        }
        public class Teacher
        {
            public Teacher()
            {

            }
            public int TeacherId { get; set; }
            public string TeacherName { get; set; }
        }

سلام دوستان من میخواستم یک دیتا بیس از طریق Code first ایجاد کنم ..
اما نمیدونم مشکلم کجاست ؟؟! و چرا به اروو میخوردم ؟؟ من کانکشن استیرنگ هم ب صورت زیر تعریف کردم .. دوستان میتونن راهنمایی کنن؟؟
ویا یک نمونه میخواستم دیتا بیس از طریق Code first برام بزارین ..

<htm>
<connectionStrings>
        <add name=SchoolContext connectionString=Data Source=.;Initial Catalog=SchoolContext;Integrated Security=True providerName=System.Data.SqlClient />
    </connectionStrings>
<htm>

<c#>
static void Main(string[] args)
        {
                 var ctx = new SchoolContext();
            
                Student stud = new Student() { StudentName = New Student };

                ctx.Students.Add(stud);
                ctx.SaveChanges();
            
        }
      
        public class SchoolContext : DbContext
        {
            public SchoolContext(): base()
            {

            }
            public DbSet<Student> Students { get; set; }
            public DbSet<Standard> Standards { get; set; }
        }
    
    public class Student
        {
            public Student()
            {

            }
            public int StudentID { get; set; }
            public string StudentName { get; set; }
            public DateTime DateOfBirth { get; set; }
            public byte[] Photo { get; set; }
            public decimal Height { get; set; }
            public float Weight { get; set; }

            public Teacher Teacher { get; set; }

            public Standard Standard { get; set; }
        }

          public class Standard
        {
            public Standard()
            {

            }
            public int StandardId { get; set; }
            public string StandardName { get; set; }

            public ICollection<Student> Students { get; set; }

        }
        public class Teacher
        {
            public Teacher()
            {

            }
            public int TeacherId { get; set; }
            public string TeacherName { get; set; }
        }

<c#>

||http://tosinso.com/files/get/1e1d6a43-722d-4adf-aa45-6b56b7223d04||

پرسیده شده در 1395/05/05 توسط

11 پاسخ

0

بله .. خطا داره ..

اینه Configuration system failed to initialize

System.TypeInitializationException was unhandled
  HResult=-2146233036
  Message=The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception.
  Source=EntityFramework
  TypeName=System.Data.Entity.Internal.AppConfig
  StackTrace:
       at System.Data.Entity.Internal.LazyInternalConnection..ctor(DbContext context, String nameOrConnectionString)
       at System.Data.Entity.DbContext..ctor()
       at CodeFirst_01.Program.SchoolContext..ctor() in D:\New Project\CodeFirst_01\CodeFirst_01\Program.cs:line 25
       at CodeFirst_01.Program.Main(String[] args) in D:\New Project\CodeFirst_01\CodeFirst_01\Program.cs:line 14
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
       BareMessage=Configuration system failed to initialize
       HResult=-2146232062
       Line=0
       Message=Configuration system failed to initialize
       Source=System.Configuration
       StackTrace:
            at System.Configuration.ConfigurationManager.PrepareConfigSystem()
            at System.Configuration.ConfigurationManager.GetSection(String sectionName)
            at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
            at System.Diagnostics.DiagnosticsConfiguration.Initialize()
            at System.Diagnostics.DiagnosticsConfiguration.get_IndentSize()
            at System.Diagnostics.TraceInternal.InitializeSettings()
            at System.Diagnostics.TraceInternal.get_Listeners()
       InnerException: 
            BareMessage=Unrecognized configuration section configuration.
            Filename=D:\New Project\CodeFirst_01\CodeFirst_01\bin\Debug\CodeFirst_01.vshost.exe.Config
            HResult=-2146232062
            Line=7
            Message=Unrecognized configuration section configuration. (D:\New Project\CodeFirst_01\CodeFirst_01\bin\Debug\CodeFirst_01.vshost.exe.Config line 7)
            Source=System.Configuration
            StackTrace:
                 at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
                 at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
                 at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
                 at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
            InnerException: 

بله .. خطا داره .. 
اینه *Configuration system failed to initialize*

<text>
System.TypeInitializationException was unhandled
  HResult=-2146233036
  Message=The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception.
  Source=EntityFramework
  TypeName=System.Data.Entity.Internal.AppConfig
  StackTrace:
       at System.Data.Entity.Internal.LazyInternalConnection..ctor(DbContext context, String nameOrConnectionString)
       at System.Data.Entity.DbContext..ctor()
       at CodeFirst_01.Program.SchoolContext..ctor() in D:\New Project\CodeFirst_01\CodeFirst_01\Program.cs:line 25
       at CodeFirst_01.Program.Main(String[] args) in D:\New Project\CodeFirst_01\CodeFirst_01\Program.cs:line 14
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
       BareMessage=Configuration system failed to initialize
       HResult=-2146232062
       Line=0
       Message=Configuration system failed to initialize
       Source=System.Configuration
       StackTrace:
            at System.Configuration.ConfigurationManager.PrepareConfigSystem()
            at System.Configuration.ConfigurationManager.GetSection(String sectionName)
            at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
            at System.Diagnostics.DiagnosticsConfiguration.Initialize()
            at System.Diagnostics.DiagnosticsConfiguration.get_IndentSize()
            at System.Diagnostics.TraceInternal.InitializeSettings()
            at System.Diagnostics.TraceInternal.get_Listeners()
       InnerException: 
            BareMessage=Unrecognized configuration section configuration.
            Filename=D:\New Project\CodeFirst_01\CodeFirst_01\bin\Debug\CodeFirst_01.vshost.exe.Config
            HResult=-2146232062
            Line=7
            Message=Unrecognized configuration section configuration. (D:\New Project\CodeFirst_01\CodeFirst_01\bin\Debug\CodeFirst_01.vshost.exe.Config line 7)
            Source=System.Configuration
            StackTrace:
                 at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
                 at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
                 at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
                 at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
            InnerException: 

<text>


||http://programming.tosinso.com/files/get/d1c81d8c-0c86-418b-981e-07fb04b3586d||

بنده احساس میکنم شاید AppConfig ( یا همون قسمت کنکشن استرینگ) مشکل داره ..

بنده احساس میکنم شاید AppConfig ( یا همون قسمت کنکشن استرینگ) مشکل داره ..

پاسخ در 1395/05/05 توسط
1

فایل configuration رو بررسی کنید، باید حتماً شروع فایل config به صورت زیر باشه:

<?xml version="1.0"?>
<configuration>
   <configSections>
      <sectionGroup name="applicationSettings" 
                    type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
           <section name="YourProjectName.Properties.Settings" 
                    type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                    requirePermission="false" />
    </sectionGroup>
پاسخ در 1395/05/05 توسط
0

راستش برای من به این صورت Appconfig ام ..

آیا درسته یا بنظرتون قسمت ارسالی شما رو جایی گزین کنم ..

<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <configuration>    
</configuration>

ولی احساس من اینه شاید کنکشن استرینگ تو AppConfig ایجاد کردم مشکل داشته باشه چون قسمت configSections رو من ایجاد نکردم و EF موقع نصب ای ایجاد کرده

  • AppConfin امم به این صورته*
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <configuration>    
</configuration>
<connectionStrings>
        <add name="SchoolContext" connectionString="Data Source=.;Initial Catalog=SchoolContext;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

فایل : AppConfig

پاسخ در 1395/05/05 توسط
0

با سلام دوباره من چنتا سوال داشتم در مورد سمپلی که گذاشتید داشتم

بعضی از قسمت هایی کدتون رو نفهمیدم ااگه ممکنه یه توضیح کوچک در موردش بدید ممنون میشم

تو قسمت 1 میخواستم بدونم چرا باید ICollection<Order> Orders تعریف بشه ؟؟!

تو قسمت 3و 4 میخواستم ببینم چرا Customers و Orders به ایین صورت تعریف کردید ؟؟

public IDbSet<Customer> Customers   
       {
           get { return Set<Customer>(); }
       }
       public IDbSet<Order> Orders    
       {
           get { return Set<Order>(); }
       }

و قسمت 2 و 5 متد هایی که تعریف شده چکاری انجام میدهند ..

بازم ممنون

 class Program
    {
        static void Main(string[] args)
        {
            var context = new CustomersContext();
            context.Database.CreateIfNotExists();
        }
    }

    public class Customer
    {
        public long Id { get; set; }
        [MaxLength(200)]
        public string Name { get; set; }
        [MaxLength(360)]
        public string Email { get; set; }

        public virtual ICollection<Order> Orders { get; set; } // 1 قسمت
    }

    public class Order
    {
        public long Id { get; set; }
        public virtual Customer Customer { get; set; }
        public long CustomerId { get; set; }
        public string Title { get; set; }
        public DateTime Date { get; set; }
        //  2 قسمت   ---
        public static EntityTypeConfiguration<Order> Map()
        {
            var map = new EntityTypeConfiguration<Order>();
            map.HasRequired(order => order.Customer)
                .WithMany(customer => customer.Orders)
                .HasForeignKey(order => order.CustomerId);
            map.Property(order => order.Title).IsRequired().HasMaxLength(200);
            return map;
        }
    }

    public class CustomersContext : DbContext
    {    
           // قسمت 3
        public IDbSet<Customer> Customers   
        {
            get { return Set<Customer>(); }
        }
           // قسمت 4
        public IDbSet<Order> Orders    
        {
            get { return Set<Order>(); }
        }
        // قسمت 5
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(Order.Map());
            base.OnModelCreating(modelBuilder);
        }
    }
پاسخ در 1395/05/08 توسط
1

سلام دوست عزیز، رو گزینه View Details بزنید و ببینید Inner Exception داره خطای تولید شده؟ اگر داشت اینجا اطلاعاتش و قرار بدید.

پاسخ در 1395/05/05 توسط
0

با سلام مجدد به دوستان اگه ممکنه یه Sample ساده برام قرار بدید ؟؟

اگه زحمتی نیست میخواستم Sln برای استفاده بدید .. ممنون

پاسخ در 1395/05/06 توسط
1

سلام مجدد، من دقیقاً کد شما رو استفاده کردم و مشکلی نداشت موقع اجرا.

پاسخ در 1395/05/06 توسط
1

فردا یه سمپل ساده آپلود میکنم که تست کنید.

پاسخ در 1395/05/07 توسط
0

خیلی متچکر از Sample گذاشتید ..

اما یه سوال دیگه داشتم اگه لطف کنید این قسمت رو نگاه بندازید راستش من خیلی گشتم که مشکل رو رفع کنم متوجه شدم در Appconfig در خط 7 </configuration> اضافه وجود داره .. وقتی اون رو پاک کردم دیتابیسم با موفقیت درست شد و به قسمت اروو هام نگاه کردم دیدم InnerException قسمت دوم ( داخلی ) به Line 7 اشاره داره ... که همین اروو هم در خط 7 Appconfig بوجود آمده .آیا از همین جا میشه متوجه خطا مانند این موضوع شد ؟؟!.. یا این امر اتفاقیه..

خیلی متچکر از Sample گذاشتید .. 
اما یه سوال دیگه داشتم اگه لطف کنید این قسمت رو نگاه بندازید راستش من خیلی گشتم که مشکل رو رفع کنم متوجه شدم در Appconfig در خط 7 </configuration> اضافه وجود داره .. وقتی اون رو پاک کردم دیتابیسم با موفقیت درست شد  و به قسمت اروو هام نگاه کردم دیدم InnerException قسمت دوم ( داخلی ) به Line 7 اشاره داره ... که همین اروو هم در خط 7 Appconfig بوجود آمده .آیا از همین جا میشه متوجه خطا مانند این موضوع شد ؟؟!.. یا این امر اتفاقیه.. 

||http://programming.tosinso.com/files/get/33f86d63-f553-4949-8ee1-d5011847882e||


||http://programming.tosinso.com/files/get/12595c84-b77b-4940-b12e-b49e0dee846d||


ممنون ..

خیلی متچکر از Sample گذاشتید .. 
اما یه سوال دیگه داشتم اگه لطف کنید این قسمت رو نگاه بندازید راستش من خیلی گشتم که مشکل رو رفع کنم متوجه شدم در Appconfig در خط 7 </configuration> اضافه وجود داره .. وقتی اون رو پاک کردم دیتابیسم با موفقیت درست شد  و به قسمت اروو هام نگاه کردم دیدم InnerException قسمت دوم ( داخلی ) به Line 7 اشاره داره ... که همین اروو هم در خط 7 Appconfig بوجود آمده .آیا از همین جا میشه متوجه خطا مانند این موضوع شد ؟؟!.. یا این امر اتفاقیه.. 

||http://programming.tosinso.com/files/get/33f86d63-f553-4949-8ee1-d5011847882e||


||http://programming.tosinso.com/files/get/12595c84-b77b-4940-b12e-b49e0dee846d||


ممنون ..

ممنون ..

پاسخ در 1395/05/07 توسط
1

سلام مجدد، غذر خواهی می کنم کمی با تاخیر جواب دادم، در مورد سوالاتی که تو پست قبلی گذاشتید:

بله میشه، جالب بود برام که خود بنده متوجه نشدم تگ configuration اونجا بسته شده.

اما پست آخریتون:

  1. رابطه بین Customer و Order رابطه یک به چند هست، یعنی هر Customer می تونه چند تا مشتری داشته باشه، خصوصیت Orders که تعریف کردیم در حقیقت لیست سفارشات مربوط به هر مشتری رو بر میگردونه و به این خاطر از نوع ICollection تعریف شده که قابلیت Add و Remove کردن آیتم ها رو داشته باشیم.
  2. آیتم هایی که تعریف کردیم DbSet های DbContext هستن و به این صورت تعریف شدن که Read-Only باشن، یعنی از خارج کلاس نشه بهشون مقدار دهی انجام داد.
  3. قسمت 2 که مشخص کردید، در حقیقت Map مربوط به یک Entity هست، یعنی تعریف می کنیم که این Entity به چه صورت با جدولی داخل Database ارتباط داره. تنظیم رابطه ها و خصوصیت ها در اینجا تعریف میشه.
  4. تو قسمت 5 متد OnModelCreating که تو کلاس DbContext تعریف شده رو Override کردیم تا بتونیم Map تعریف شده داخل کلاس Order رو به کلاس DbContext بشناسونیم.

اگر بازم سوالی بود در خدمتم.

پاسخ در 1395/05/10 توسط

پاسخ شما