2017-09-24 6 views
-2

私は今プログラムに取り組んでいますが、私の問題は、ユーザーがプログラムを開いたときに、プログラムで使用できます。ユーザーのコンピュータに自分のデータベースを作成してプログラムを開くにはどうすればいいですか(データベースはSQL上にあります)私はプログラムを最初に実行したときにC#でデータベースを作成することができます

答えて

0

あなたはEntity Frameworkを調べる必要があります。欲しいです。コードの最初のアプローチを具体的に見てください。

コンテキストクラスのベースコンストラクタでパラメータとしてデータベース名を指定することもできます。データベース名パラメータを指定すると、コード・ファーストは、ローカルSQLEXPRESSデータベース・サーバーの基本コンストラクタで指定した名前のデータベースを作成します。たとえば、コードファーストは、次のコンテキストクラスに対してMySchoolDBという名前のデータベースを作成します。

詳細はここでは、実行時に データベースをロードするためにAutofacと依存性注入パターンを使用することができます

http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx

namespace SchoolDataLayer 
    { 
      public class Context: DbContext 
      { 
      public Context(): base("MySchoolDB") 
      { 

      } 
      } 
    } 
+0

ありがとうございました:D – HeroOfSkies

0

を見つけることができます。

More details here

MVCコントローラー:

public HomeController: Controller 
{ 
private readonly IDataAccessLayer _layer; 
public HomeController(IDataAccessLayer Layer) 
{ 
    this._layer = layer; 
    _layer.StartUpDatabase(); 
} 

} 

IDataAccessLayerインタフェース:

public interface IDataAccessLayer 
{ 
Task StartUpDatabase(); 
} 

DataAccessLayerクラス:

public DataAccessLayer: IDataAccessLayer 
{ 

public async Task StartUpDatabase() 
{ 
//Try to get a connection handle of the SQL Server database 
} 

} 

そしてglobal.asax.csファイルで、Autofacの依存関係を登録します。

var builder = new ContainerBuilder(); 
builder.RegisterType<DataAccessLayer>().As<IDataAccessLayer>(); 
var container = builder.Build(); 
関連する問題