[英]ASP.net MVC : Create MVC 5 Application using EF6 with Code First and Existing Database
[英]How to check if data exist in SQL table using EF code first in ASP.NET MVC application?
我有这个模型类:
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代码优先方法,我想检查Serial vs SerialConfirmed的值,并找到任何等于SerialConfirmed的Serial。
我尝试下面但我得到一个null异常,不知道如何解决这个问题?
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; }
}
任何帮助表示赞赏。 提前致谢。
你的if语句应该是这样的:
if (Details.MembershipSerial.Serial == Details.MembershipSerial.SerialConfirmed)
Serial和Serial Confirmed是字符串,因此您只需比较它们即可
如果您尝试将数据库中的任何Serial
与用户正在Check Out的SerialConfirmed
进行比较,那么您需要一个变量来保存连接字符串的新实例:假设MemberShipSerial
是数据库中的表...
using(var db = new ConnectionString())
{
if(db.MembershipSerial.Any(x => x.Serial.ToUpper() == Details.MembershipSerial.SerialConfirmed.ToUpper())
{
/*do something*/
}
}
如果你只想根据用户键入的内容比较Serial
和SerialConfirmed
然后使用
if(Details.MembershipSerial.Serial.ToUpper() == Details.MembershipSerial.SerialConfirmed.ToUpper())
如果第二个选项返回一个空异常,那么你必须调试CheckingIn
Action并查看那些属性是否包含你期望的值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.