我在我的数据库中创建了一个名为AccountCoupon
的表,该表在AccountCoupon.cs
的{{1}}中定义为:
DataModel.tt
然后我使用可用字符的char数组和for循环随机创建ID,然后将其添加到数据库中:
public partial class AccountCoupon
{
public string CouponID { get; set; }
public int Days { get; set; }
}
但是,当我尝试将其添加到数据库时,它会抛出错误,指出public ActionResult Create()
{
if (!string.IsNullOrWhiteSpace(Request["CouponDays"]))
{
int days = 0;
int.TryParse(Request["CouponDays"], out days);
if (days > 0)
{
string cID = "";
for (int i = 0; i < 10; i++)
{
cID += couponCharacters[rand.Next(couponCharacters.Count())];
}
db.AccountCoupons.Add(new AccountCoupon { CouponID = cID, Days = days });
db.SaveChanges();
return RedirectToAction("Index");
}
return RedirectToAction("Index");
}
return View();
}
为NULL,并且插入失败。对我来说这是不可能的,因为我只是为它分配了一个值。
答案 0 :(得分:0)
您每次在循环内创建一个名为ID
的字符串实例。所以它只存在于循环内部。试试
string ID = string.Empty
for (int i = 0; i < 10; i++)
ID += couponCharacters[random.Next(couponCharacters.Count())];
db.AccountCoupons.Add(new AccountCoupon { CouponID = ID, Days = iDays });
答案 1 :(得分:0)
问题出在表StoreGeneratedPattern
属性的属性CouponID
中。它默认设置为Identity
的值,这会导致错误,因为无法自动生成字符串。将值设置为None
解决了问题: