6

現在、EF 5コードファーストを使用して課金アプリケーションを作成していますが、アプリケーションの実行中にエラーが発生します。

問題のデータベースオブジェクトは次のとおりです。

[Table("Client")]
public class ClientBase
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ClientID { get; set; }

    [Required]
    public string ClientName { get; set; }

    [Required]
    public bool IsActive { get; set; }

    [Required]
    public string ClientContactName { get; set; }

    [Required]
    public string ClientContactEmail { get; set; }

    [Required]
    public DateTime ClientStartDate { get; set; }

    [Required]
    public string SalesforceID { get; set; }

    public DateTime TerminatedDate { get; set; }

    public string ClientStreet { get; set; }

    public string ClientCity { get; set; }

    public string ClientState { get; set; }

    public int? ClientZipCode { get; set; }

    public virtual List<PropertyBase> Properties { get; set; }

    public virtual List<ClientCharge> ClientDefaultCharges { get; set; }

}

最近、これらのフィールドを多数追加しました(ClientStartDateからClientZipCodeまではすべて新しいものです)。アプリケーションを実行するたびに、次のエラーが発生します。

{"Invalid column name 'ClientStartDate'.\r\nInvalid column name 'SalesforceID'.\r\nInvalid column name 'TerminatedDate'.\r\nInvalid column name 'ClientStreet'.\r\nInvalid column name 'ClientCity'.\r\nInvalid column name 'ClientState'.\r\nInvalid column name 'ClientZipCode'."}

しかし、私を驚かせるのは、私のデータベースが実際にそれに応じて更新されたことです。これらのフィールドは現在テーブルにありますが、それでもエラーが発生します。

ここで何がうまくいかないかについてのアイデアはありますか?

編集:わかりました、明らかに私が言及するのを忘れたことが1つありました:SalesforceIDは外部キーではありません。追加された列はどれも実際にはFKではありませんでした。それらは単なるフィールドです。

4

3 に答える 3

9

つまり、[必須] DateTimeフィールドをNullable(DateTime?)にすることを検討してください。スタックトレースと初期化コードに関する詳細情報を提供すると、役に立ちます。

[Required]
public DateTime? ClientStartDate { get; set; }
于 2012-06-12T17:24:45.897 に答える
7

私の場合、このエラーは、テストデータベースに対してEDMXを更新し、本番データベースに対してコードを実行していたために発生しました。

于 2012-06-12T16:27:52.230 に答える
1

私の疑いは、SalesforceIDが問題を引き起こしているということです。新しい列をすべて削除して、一度に1つずつ追加し直し、エラーがないか確認してください。問題が実際にSalesforceIDにある場合は、これで解決する可能性があります。

于 2012-05-09T15:06:15.757 に答える