2

そのため、SQLServerExpress 2008 R2 を実行し、Visual Studio 2010 を実行しています。SQL Server インスタンスを実行していると思います (図 1)。プログラムで接続文字列を指定しない場合、EF はローカルの SQL Server インスタンスにデータベースを作成するという通知を受けました。そうではありません。. .エラーが発生しています

私のコードは次のとおりです。

global.asax.cx

protected void Application_Start()
{
    Database.SetInitializer(new DatabaseInit());

    AreaRegistration.RegisterAllAreas();

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

Horse.cs:

public class Horse
{
    public int HorseID { get; set; }
    public string Name { get; set; }

    public virtual Participant Participant { get; set; }
}

Participant.cs:

public class Participant
{
    public int ParticipantID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    [Required]
    public Horse Horse { get; set; }
}

MelbourneCupDbContext:

public class MelbourneCupDbContext : DbContext
{
    public DbSet<Horse> Horses;
    public DbSet<Participant> Participants;
}

DatabaseInit:

public class DatabaseInit : DropCreateDatabaseAlways<MelbourneCupDbContext>
{
    protected override void Seed(MelbourneCupDbContext context)
    {
        var Horses = new List<Horse>
        {
            new Horse{Name="Americain"},
            new Horse{Name="Jukebox Jury"},
            new Horse{Name="Dunaden"}
            ....
        };

        foreach (Horse h in Horses)
            context.Horses.Add(h);
        context.SaveChanges();

    }
}

最後に、データベースを使用しようとすると ( SignUpController.cs):

private MelbourneCupDbContext dbContext = new MelbourneCupDbContext();

[HttpGet]
public ActionResult Index()
{
    IEnumerable<Horse> allHorsesList = dbContext.Horses.ToList();
    return View(allHorsesList);
}

ソースを null にすることはできないという ToList を呼び出そうとすると、エラーが発生します。

ハーフ

図1 サーバー インスタンスの実行中

4

3 に答える 3

1

"SQL Express がインストールされている場合 (Visual Studio 2010 に含まれています)、ローカルの SQL Express インスタンス (.\SQLEXPRESS) にデータベースが作成されます。SQL Express がインストールされていない場合、Code First は LocalDb ((localdb)\v11 .0) - LocalDb は Visual Studio 2012 に含まれています"

詳細については: http://msdn.microsoft.com/en-us/data/jj591621.aspx

于 2013-05-24T09:21:14.813 に答える
0

App_Data フォルダーを見てください。デフォルトの場所です。

「.mdf データベース ファイル、XML ファイル、およびその他のデータ ストア ファイルを含むアプリケーション データ ファイルが含まれています。App_Data フォルダーは、メンバーシップおよびロール情報を維持するためのデータベースなど、アプリケーションのローカル データベースを格納するために ASP.NET によって使用されます。」

http://msdn.microsoft.com/en-us/library/ex526337(v=vs.100).aspx

于 2013-05-24T09:21:55.133 に答える