0

如何初始化数据库?// 带有 msSQL(LocalDb)/V11 的 ASP.NET MVC 3 我想编写代码以将数据上传到数据库。ASP.NET MVC3 EF 代码优先

网络配置

<connectionStrings>
    <add name="CompanyContext" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=CompanyContext-20130203175316; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|CompanyContext-20130203175316.mdf"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

全球.asax.cs

protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            // Use LocalDB for Entity Framework by default
            Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }

初始化 执行此操作的描述。

namespace tesztfeladat.Models
{
    public class CompanyInitalizer : DropCreateDatabaseIfModelChanges<CompanyContext>
    {
        protected override void Seed(CompanyContext context)
        {
            var contacts = new List<Contact>
            {
                new Contact {
                    Vezetéknév="Nagy",
                    Keresztnév="János",
                    Beosztás="alkalmazott",
                    Email="nagy.janos@default1.com",
                    Telefonszám="06361254452"
                },

                new Contact {
                    Vezetéknév="Kiss",
                    Keresztnév="Ferenc",
                    Beosztás="alkalmazott",
                    Email="kiss.ferenc@default1.com",
                    Telefonszám="06361254452"
                }
            };

            contacts.ForEach(d => context.Contacts.Add(d));
            context.SaveChanges();

            var events = new List<Event>
            {
                new Event {
                    Időpont=DateTime.Parse("12/31/2010"), 
                    Típusa="Tárgyalás",
                    Leírás="Éves költségvetés"
                },

                new Event {
                    Időpont=DateTime.Parse("12/31/2010"), 
                    Típusa="Tárgyalás",
                    Leírás="Éves költségvetés"
                }
            };

            events.ForEach(d => context.Events.Add(d));
            context.SaveChanges();


            var customers = new List<Customer>
            {
                new Customer {
                    Cégnév ="Default1.Kft",
                    Irányítószám= 1012,
                    Város="Budapest",
                    Cím="Tavasz utca 54.",
                    Weblap="http://www.default1.com",
                    Telefonszám="06361254452",
                    Contacts= contacts,
                    Events=events
                },

                new Customer {
                    Cégnév ="Default2.Kft",
                    Irányítószám= 2440,
                    Város="Százhalombatta",
                    Cím="Tél utca 34.",
                    Weblap="http://www.default1.com",
                    Telefonszám="063623254452",
                    Contacts=contacts,
                    Events=events
                }
            };
            customers.ForEach(d => context.Customers.Add(d));
            context.SaveChanges();
        }
    }
}

我试过这个,但不工作。:(请帮帮我!谢谢!

4

1 回答 1

0

在您尝试从 DataContext 访问某些内容之前,数据库不会初始化。尝试将其放在 Application_Start 方法的末尾:

using(var context = new CompanyContext())
{
    var temp = context.Contacts.FirstOrDefault();
}
于 2013-02-08T19:11:49.353 回答