如何首先在 MVC 应用程序中使用 EF 代码检查 SQL 表中是否存在数据 ASP.NET

本文关键字:是否 SQL 存在 NET ASP 数据 检查 EF MVC 何首先 应用程序 | 更新日期: 2024-11-06 04:45:07

我有这个模型类:

public class MembershipSerial
{
    [HiddenInput(DisplayValue=false)]
    public int Id { get; set; }
    [HiddenInput(DisplayValue=false)]
    public string Serial { get; set; }
    [Required]
    [Display(Name="Membership Serial")]
    public string SerialConfirmed { get; set; }
}

我正在使用EF代码优先方法,我想检查串行与串行确认的值,并找到任何等于串行确认的串行。

我在下面尝试过,但我得到一个空异常,不知道如何解决这个问题?

    public ActionResult Checkout(UserDetails Details)
    {
        if (Details.MembershipSerial.Serial.Any().ToString() == Details.MembershipSerial.SerialConfirmed)
        {
            return View("UserSerial");
        }
        return View();
    }
    public class UserDetails : IdentityUser
    {
        public virtual DeliveryDetails DeliveryDetails { get; set; }
        public virtual UserOrders UserOrders { get; set; }
        public virtual MembershipSerial MembershipSerial { get; set; }
    }

编辑:

public class MembershipSerial
{
    [HiddenInput(DisplayValue=false)]
    public int Id { get; set; }
    [HiddenInput(DisplayValue=false)]
    public string Serial { get; set; }
    [Required]
    [Display(Name="Membership Serial")]
    public string SerialConfirmed { get; set; }
}
public class DeliveryDetails
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Phone { get; set; }
    public string Company { get; set; }
    public string Address { get; set; }
    public string AddressLine2 { get; set; }
    public string District { get; set; }
    public string Province { get; set; }
}
public class UserOrders
{
    public int Id { get; set; }
    public string ProductName { get; set; }
}
public class MyDbContext : IdentityDbContext<UserDetails>
{
    public MyDbContext()
        : base ("EFDbContext")
    {
    }
    public System.Data.Entity.DbSet<MembershipSerial> MembershipSerial { get; set; }
    public System.Data.Entity.DbSet<DeliveryDetails> DeliveryDetails { get; set; }
    public System.Data.Entity.DbSet<UserOrders> UserOrders { get; set; }
}

任何帮助,不胜感激。提前谢谢。

如何首先在 MVC 应用程序中使用 EF 代码检查 SQL 表中是否存在数据 ASP.NET

你的if语句应该是这样的:

 if (Details.MembershipSerial.Serial == Details.MembershipSerial.SerialConfirmed)
串行

和串行确认是字符串,因此您可以比较它们

如果您尝试将数据库中的任何Serial与用户正在签出SerialConfirmed进行比较,则需要一个变量来保存连接字符串的新实例:假设MemberShipSerial是数据库中的表...

using(var db = new ConnectionString())
{
    if(db.MembershipSerial.Any(x => x.Serial.ToUpper() == Details.MembershipSerial.SerialConfirmed.ToUpper())
    {
        /*do something*/
    }
 }

如果您只想根据用户键入的内容比较SerialSerialConfirmed,请使用

if(Details.MembershipSerial.Serial.ToUpper() == Details.MembershipSerial.SerialConfirmed.ToUpper())

如果第二个选项返回 null 异常,则必须在 CheckingIn 操作上进行调试,并查看这些属性是否包含您期望的值