1

MVC4 では、新しい行をデータベース (SQL Compact) に挿入するのに問題があります。次のように、生のテキスト (タブ区切り) から行を作成しています。

                while (reader.Peek() != -1)
            {
                newRow = Cos.Create();
                line = reader.ReadLine().Split('\t');
                for (int i = 0; i < header.Count(); i++)
                {
                    switch (header[i])
                    {
                        case "CompanyName":
                            newRow.CompanyName = line[i];
                            break;
                        case "City":
                            newRow.City = line[i];
                            break;
                        case "Country":
                            newRow.Country = line[i];
                            break;
                        default:
                            return "A column was found with an unacceptable value - " + header[i] + " - No changes have been made.";
                    }
                }
                this.Cos.Add(newRow);
            }
        this.SaveChanges();

私のテーブルには Id 列があり、int、Unique、Primary Key、および Identity (seed:1、increment:1) に設定されています。問題は、生成したすべての行の Id 値が 0 であるため、SQL が「this.SaveChanges()」によって生成されたステートメントを拒否することです。

挿入時に SQL で各行に一意の ID を割り当てる方法はありますか? これがアイデンティティの目的であるというのが私の理解でした。

私のモデルは次のようになります。

public class CoDB{
        public string CompanyName { get; set; }
        public string City { get; set; }
        public string Country { get; set; }
        public int Id { get; set; }
}

CoDBContext は次のように定義します。

public DbSet<CoDB> Cos {get; set;}

助けてくれてありがとう!-ザック

4

1 に答える 1

0

自動識別フィールドの値を設定しようとしているように聞こえますが、そうすべきではありません。これが役立つかどうかを確認してください: Entity Framework を使用した自動番号付け

于 2012-10-04T03:58:42.000 に答える