3

という名前のテーブルにレコードを挿入しようとしていますTest。LINQ テクニックを使用しています。

問題はtime、テーブルに のタイプの列があることですが、テーブルTime(7)にデータを挿入しようとすると、次のエラーが発生します。

Operand type clash: bigint is incompatible with time

これはtestSQLでの私のテーブルデザインです:

SQL Server 2012 のテーブル 'Test'

C# での私のテーブルの実装:

[Table(Name = "Test")]
class TableTest
{
    private int _id;
    [Column(IsPrimaryKey = true, Name = "id", Storage = "_id")]
    public int id
    {
        get { return _id; }
        set { _id = value; }
    }
    private TimeSpan _time;
    [Column(Name = "time", Storage = "_time")]
    public TimeSpan time
    {
        get { return _time; }
        set { _time = value; }
    }
}

ここで、レコードを挿入しようとします:

    DataContext dc = new DataContext(@"Data Source=.;Initial Catalog=DBTest;Integrated Security=True");

    private void button1_Click(object sender, EventArgs e)
    {
        TableTest t = new TableTest();
        t.id = 1;
        t.time = new TimeSpan(7, 30, 0);
        Table<TableTest> t_insert = dc.GetTable<TableTest>();
        t_insert.InsertOnSubmit(t);
        dc.SubmitChanges();  // error Here !!!!!
    }

私はどこでも検索しました。私が見つけたのは、Time()私が使用すべきSQLタイプをマッピングすることだけでしTimeSpanた。私が間違っていることを教えてください! ありがとう

4

1 に答える 1