【发布时间】:2016-04-14 16:24:14
【问题描述】:
在我看来,我有六个字段 TinNo、CstNo、PanNo、CinNo、ServiceTaxNo、ExciseRegNo。每个字段都有默认 Guid,例如 TinNo 表示(TinNo= FD713788-B5AE-49FF-8B2C-F311B9CB0CC4) .我需要将这六个字段保存在同一列中,但不保存在 TaxInfoTaxField Table 的同一行和同一单元格中。 TaxInfoTaxFiled 表包含 TAXINFOTAXFIELDID、TAXFIELDID、FIELDVALUE,即我需要将这六个字段值(在视图中输入)保存在 FieldValue 列中,并将它们的 id 保存在 TaxFieldID 列中。它需要逐行保存。所以我决定将默认 guid 放在一个列表中,将字段放在另一个列表中,然后在我们想要的地方调用。在 TaxInfoTaxFieldID 中,每一行都有新的新 guid。
所以我决定将默认 GUID 放在一个列表中,将 6 个字段放在另一个列表中
ArrayList objValue = new ArrayList();
{
objValue.Add(TITFVM.TinNo);
objValue.Add(TITFVM.CstNo);
objValue.Add(TITFVM.PanNo);
objValue.Add(TITFVM.CinNo);
objValue.Add(TITFVM.ExciseRegNo);
objValue.Add(TITFVM.ServiceTaxNo);
}
List<Guid> LG = new List<Guid>();
LG.Add(new Guid("FD713788-B5AE-49FF-8B2C-F311B9CB0CC4"));
LG.Add(new Guid("64B512E7-46AE-4989-A049-A446118099C4"));
LG.Add(new Guid("376D45C8-659D-4ACE-B249-CFBF4F231915"));
LG.Add(new Guid("59A2449A-C5C6-45B5-AA00-F535D83AD48B"));
LG.Add(new Guid("03ADA903-D09A-4F53-8B67-7347A08EDAB1"));
LG.Add(new Guid("2F405521-06A0-427C-B9A3-56B8931CFC57"));
var taxinfotaxfieldID = Guid.NewGuid();
var listFiled = new List<TaxInfoTaxFiled>();
for (var item = 0; item < objValue.Count; item++)
{
TaxInfoTaxFiled taxInfoObj = new TaxInfoTaxFiled()
{
TaxInfoTaxFieldID = taxinfotaxfieldID,
TaxFieldID = new Guid(LG[item].ToString()),
FieldValue = objValue[item].ToString()
};
listFiled.Add(taxInfoObj);
db.TaxInfoTaxFileds .Add(taxInfoObj);
db.SaveChanges();
}
return View();
}
一切正常,但对于第二个循环,我遇到了一个错误 违反主键约束“PK_TaxInfoTaxFiled”。无法在对象“dbo.TaxInfoTaxFiled”中插入重复键。 声明已终止。
在 TaxInfoTaxFieldID 中,它为所有迭代计算相同的 id,所以只有我得到这个错误,我认为是这样。为此我该怎么办?请帮我纠正这个问题?
提前谢谢..
【问题讨论】:
-
你是只存储一次还是多次???
-
我为一位客户在同一列中存储多个字段一次
-
TinNo的值是否对所有客户都不同? -
因为它是主键,它需要不同,但您使用的是默认键。这可能是导致此错误的原因。您可能想尝试一些复合键或一些不同的主键
-
等一下我给你看
标签: javascript c# jquery sql asp.net-mvc-4