-1

SQL Azureを学習するときにこのチュートリアルに従い、正常に完了しました: WindowsAzureチュートリアル

同様のアプリケーションを作成したかったのですが、コードファーストアプローチを使用してより複雑なデータベースを実装し、「update-database」コマンドを入力すると、次のエラーが発生します。

Cannot attach the file 'c:\users\dadler\documents\visual studio 2012\Projects\EliteTrainingAzure\EliteTrainingAzure\App_Data\EliteTrainingAzure.Models.EliteTrainingDB.mdf' as database 'EliteTrainingAzure.Models.EliteTrainingDB'.

これが私の接続文字列です:

 <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-EliteTrainingAzure-20130325095843;User Intance = True;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-EliteTrainingAzure-20130325095843.mdf" providerName="System.Data.SqlClient"/>

そして最後に、私が外部キーの作成をどのように処理したかの例を示します。

namespace EliteTrainingAzure.Models

{public class Client {[Key] public int ClientID {get; セットする; }

    public int GoalID { get; set; }
    [ForeignKey("GoalID")]
    public Goal Goal { get; set; }

    public int TrainerID { get; set; }
    [ForeignKey("TrainerID")]
    public Trainer Trainer { get; set; }

    public string ClientName {get; set;}
    public string ClientAddress { get; set; }
    public string ClientCity { get; set; }
    public string ClientState { get; set; }
    public string ClientZip { get; set; }

誰かがこのエラーを修正する方法について正しい方向に私を向けることができれば、それは素晴らしいことです。前もって感謝します!

4

1 に答える 1

2

私は時々ローカルプロジェクトで同じ問題を抱えています。

原因はまだ特定されていませんが、これは回避策のようです。

初期カタログと.mdfファイルの名前を新しい値に変更し、Update-Databaseを再度実行します。

例えば:

...Initial Catalog=aspnet-EliteTrainingAzure-20130325095843;...

...Initial Catalog=aspnet-EliteTrainingAzure-xxx;...

...AttachDBFilename=|DataDirectory|\aspnet-EliteTrainingAzure-20130325095843.mdf"

...AttachDBFilename=|DataDirectory|\aspnet-EliteTrainingAzure-xxx.mdf"

また、接続文字列を元の名前に復元し、実際の.mdfファイルの名前を変更することもできます。

注:これが、基盤となるデータベースシステムまたはデータ移行モデルデータベースが「孤立した」データベース参照で乱雑になっていることを意味するかどうかはわかりません。Update-Databaseプロセスでは、新しい名前の処理に問題はないようです。

注:これは回避策であり、解決策ではないことに注意してください。:)

シグルド

于 2013-03-28T11:45:54.667 に答える