1

基本上我正在尝试扩展已经创建的 ASP.NET MVC 4 的 SimpleMembership。我想添加一个初始值为 0 的余额字段。

我尝试使用以下代码并在 Balance 字段中不插入任何内容:

    [Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string RealName { get; set; }
    public int Balance { get; set; }
}

但不幸的是,当我尝试创建一个新用户(没有余额)时出现异常,我无法在余额中插入 null,因为它不允许空值。如何在 Code First 中将余额设为 0 作为默认值。

4

3 回答 3

0

  int Balance

不允许空值,但

  int? Balance

做。

如果您想在数据库级别控制结构,请使用显式迁移并手动调整生成的迁移代码,以便您在数据库级别设置默认值。如果你想要代码级别的默认值,只需在类的默认构造函数中设置该值。

于 2013-05-26T18:01:23.390 回答
0

默认情况下,整数的默认值为 0。当您实例化一个新的 UserProfile 时,Balance 应该已经设置为 0。

请参阅:默认值表(C# 参考)

于 2014-05-07T13:45:36.643 回答
0

首先:您可以使用这样的构造函数:

[Table("UserProfile")]
public class UserProfile
{
  [Key]
  [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
  public int UserId { get; set; }
  public string UserName { get; set; }
  public string RealName { get; set; }
  public int Balance { get; set; }

  public UserProfile()
  {
     this.Balance = 0;
  }
}

二、clean and rebuild解决方案,然后使用迁移命令

Update-database -verbose
于 2014-05-07T13:41:07.890 回答