【问题标题】:Linq DataContext InsertOnSubmit statement Inserts only NULL values in the tableLinq DataContext InsertOnSubmit 语句 只在表中插入 NULL 值
【发布时间】:2012-10-12 23:11:17
【问题描述】:

请帮忙!!!

我有这段简单的代码,我不知道为什么不做应该做的事情是插入类中包含的数据,我不知道我做错了什么,导致插入语句在表中只产生 NULL 值。

这是代码:

    public void InsertData()
    {
        using (CTM dc = new CTM(conn))
        {
            //Table<ValidCCGpn> validCCGpn = dc.GetTable<ValidCCGpn>();

            for (int i = 0; i < 10; i++)
            {
                dc.ValidCCGpn.InsertOnSubmit(
                    new ValidCCGpn
                        {
                            Period = 201209,
                            GPN = "gpn" + i.ToString(),
                            CC_GPN = "cc_gpn" + i.ToString()
                        });
            }
            dc.SubmitChanges();
        }

    }

这是我的 DataContext 和 and 表:

public partial class CTM : DataContext
{
    public CTM(string conn) : base(conn) { }

    public Table<ValidCCGpn> ValidCCGpn;
}


[Table(Name = "CAT.ValidCCGpn")]
public class ValidCCGpn
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
    public int Id { get; set; }

    public int Period { get; set; }
    public string GPN { get; set; }
    public string CC_GPN { get; set; }

}

这是创建表的sql脚本:

    CREATE TABLE [CAT].[ValidCCGpn](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Period] [int] NULL,
    [GPN] [varchar](50) NULL,
    [CC_GPN] [varchar](50) NULL,
 CONSTRAINT [PK_ValidCCGpn] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

这是我在表格中得到的结果:

Id  Period  GPN CC_GPN
1   NULL    NULL    NULL
2   NULL    NULL    NULL
3   NULL    NULL    NULL
4   NULL    NULL    NULL
5   NULL    NULL    NULL
6   NULL    NULL    NULL
7   NULL    NULL    NULL
8   NULL    NULL    NULL
9   NULL    NULL    NULL
10  NULL    NULL    NULL

【问题讨论】:

    标签: linq insert null datacontext insertonsubmit


    【解决方案1】:

    您的其他属性缺少列属性

    [Table(Name = "CAT.ValidCCGpn")] 
    public class ValidCCGpn 
    { 
        [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)] 
        public int Id { get; set; } 
    
        [Column]
        public int Period { get; set; } 
        [Column]
        public string GPN { get; set; } 
        [Column]
        public string CC_GPN { get; set; } 
    
    } 
    

    【讨论】:

    • 是的,这正是我所缺少的。有用!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2015-07-17
    相关资源
    最近更新 更多