2017-03-15 12 views
0

移行を理解しようとしています。私はAutomaticMigrationsEnabled = trueを持っています。初期移行を作成しました。Azure Entity Framework AutomaticMigrationsEnabledデータ型の変更でデータベースタイプが更新されない

DBContextに新しいDBSetを追加してこのサービスを公開すると、対応する新しいテーブルが疑わしいものとしてデータベースが更新されます。

ただし、エンティティクラスのプロパティのデータ型を変更すると、たとえば、下の例でStatusIDをintからstringに変更し、サービスを公開すると、対応する列のデータ型がデータベースで更新されません。

AutomaticMigrationsEnabled = trueの場合、このシナリオでデータベースが自動的に更新されないのはなぜですか?それは私のために今働いている

おかげ

namespace myService.DataObjects 
{ 
    public class Status : EntityData 
    { 
    public int StatusID { get; set; } 
    public string Description { get; set; } 
    } 
} 

public class myServiceContext : DbContext 
{.... 
public Configuration() 
{ 
    AutomaticMigrationsEnabled = true; 
    AutomaticMigrationDataLossAllowed = true; 
    SetSqlGenerator("System.Data.SqlClient", new EntityTableSqlGenerator()); 
} 
+0

この問題は、すべてのプロパティで発生するのですか? このような列のタイプを変更するには、通常、列を削除して再作成する必要があります。 StatusIDはあなたのPKですが、Azure SQL(Azure SQLを使用するタグに基づいて推測しています)では、PKなしではテーブルは存在できません。 PKが変更操作を受けている間でさえも。 ログにエラーがあると思われますか? –

+0

EntityDataクラスから継承しているため、StatusIDは主キーではありません。主キーはEntityDataクラスのIDです。私は他のプロパティを変更しようとしますが、現在は不安定な状態にあるように感じ、実際にテストするためにマイグレーションをリセットする必要がありますが、すべてのプロパティで起こっていると推測しています。私はそれを同期させておく問題を抱えてきました.1分後にはこのような問題が発生しているようです。 –

+0

それは私のために今働いています、私は過去に物事を見ていたかどうか分かりませんが、私はこれを返答としてマークします。この時間を過ごしてくれてありがとう –

答えて

0

は、私が過去に物事を見たり何だったのかどうかわからないが、私は答えとしてこれをマークするつもりです。この時間をお寄せいただきありがとうございます

関連する問題