2016-05-23 12 views
0

SQLサーバーデータベースへのアクセスが制限されています& MVCプロジェクトからテーブルを変更する必要があります。私は試してみました:移行なしでEntity Frameworkを使用してテーブルの列を追加/変更する未処理のクエリ

var db = MyDbContext.Create(); 
try 
{ 
    var res = 
    db.Speakers.SqlQuery("ALTER TABLE [dbo].[Speakers] ADD [LastName] [nvarchar](256) NULL"); 
} 
catch (Exception exception) 
{ 
    Console.WriteLine(exception); 
} 

例外は発生していますが、テーブルは更新されていません。 Rawクエリが変更を許可するかどうかはわかりません。しかし、私はちょうど試してみました。どのように私はデータベースを変更できますか?

答えて

1

は、このアプローチを試してみてください:

db.Database 
.ExecuteSqlCommand("ALTER TABLE [dbo].[Speakers] ADD [LastName] [nvarchar](256) NULL"); 
+0

それは動作します..おかげで.. :) – SarangK

1

非照会コマンドは、データベース上の ExecuteSqlCommand方法を使用してデータベースに送信することができます。たとえば、次のエンティティが をロードしたり、データベースから再ロードされるまで ExecuteSqlCommandを使用して、データベース内のデータに対して行われた変更は、コンテキストに不透明であること

using (var context = new BloggingContext()) 
{ 
    context.Database.ExecuteSqlCommand( 
     "UPDATE dbo.Blogs SET Name = 'Another Name' WHERE BlogId = 1"); 
} 

注意。

Entity Frameworkの生のSQLクエリ https://msdn.microsoft.com/en-gb/data/jj592907.aspx

関連する問題