1

こんにちは、エンティティ フレームワーク コードを初めて使用していますが、テーブルの生成に問題があります。MVC3 アプリケーションの App_Data に空のデータベースを作成しました。これは私が作成したモデルです:

 public class Brand {
    public int BrandId { get;set; }
    public string BrandName { get;set; }
}

public class Model
{
    public int ModelId { get;set; }
    public Brand BrandId { get;set; }
    public Category CategoryId { get;set; }
    public string ModelName { get;set; }
}

public class Category
{
    public int CategoryId { get;set; }
    public string CategoryName { get;set; }
}

これは dbContext です:

public class CarsEntities : DbContext{
    public DbSet<Brand> Brands { get;set; }
    public DbSet<Model> Models { get;set; }
    public DbSet<Category> Categories {get;set;} 
}

これは web.config の connectionString です。

<connectionStrings>
      <add name="CarsEntities" connectionString="Data Source='D:\Projects IDE\Visual Studio\MyWork\Websites\SellCars\SellCars\App_Data\Cars.sdf'" providerName="System.Data.SqlClient" />      
 </connectionStrings>

HomeController で CarsEntities を初期化しましたが、どのテーブルも生成されないようです。何が間違っていますか?

4

2 に答える 2

1

最初に - SQL Server Compact を使用しているため、SQL Server ではなく Compact を使用するようにプロバイダー名を変更する必要があります。

<add name="CarsEntities" connectionString="Data Source='D:\Projects IDE\Visual Studio\MyWork\Websites\SellCars\SellCars\App_Data\Cars.sdf'" providerName="System.Data.SqlServerCe.4.0" />

次に、Application_Start コードのどこかでデータベース初期化子を使用する必要があります。これにより、データベース テーブルを作成するかどうか、およびそれらを再作成する頻度がエンティティ フレームワークに通知されます。ここを参照してください:

http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm

http://msdn.microsoft.com/en-us/data/jj591621.aspx

于 2013-01-04T21:35:37.907 に答える
1

問題はあなたの中にあると思います

webcofig 

これは、特にmdfファイルデータベースファイルのようなファイルとしてdbを使用する場合ですdtasource

       `<add name="CarsEntities"  connectionString="data source=.\SQLEXPRESS; Integrated
 Security=SSPI;AttachDBFilename=|yourDirectoryDirectory|\thenameofyourdb.mdf;User
 Instance=true"  providerName="System.Data.SqlClient" /`>
于 2013-01-04T21:30:40.537 に答える