[英]MVC how to connector one model to two others
我需要一些帮助,以了解如何创建与其他两个模型链接的模型。
我有三种模式:
public class RequiredPower
{
public int RequiredPowerID { get; set; }
[Required(ErrorMessage = "This field cannot be empty!")]
[MaxLength(25, ErrorMessage = "This name is too long. Max. 35 characters allowed!")]
[Display(Name = "Name:")]
public string Name { get; set; }
public int Position { get; set; }
}
public class RequiredFuses
{
public int RequiredFusesID { get; set; }
[Required(ErrorMessage ="This field cannot be empty!")]
[MaxLength(25,ErrorMessage ="This name is too long. Max. 25 characters allowed!")]
[Display(Name="Fuse:")]
public string Name { get; set; }
}
public class PowerConnector
{
public int PowerConnectorID { get; set; }
[Required(ErrorMessage = "This field is required!")]
[Display(Name = "Name:")]
[StringLength(45, ErrorMessage = "The name is too long, only 45 characters allowed!")]
public string Name { get; set; }
[StringLength(150, ErrorMessage = "The name is too long, only 150 characters allowed!")]
[Display(Name = "Image file name:")]
[DataType(DataType.MultilineText)]
public string ImageName { get; set; }
}
这个想法是,一个RequiredPower可以具有多个PowerConnector和多个RequiredFuse。
在“视图”上,我有一个文本框可输入RequiredPower的名称,连接器的选择列表和保险丝的选择列表。 选择列表是多个复选框列表,并提供一串选择的ID,例如“ 1,2,3,”。
没有如何在数据库中获取它? 我可以添加新的requiredPower,获取ID,然后在其他两个表中以RequiredPowerID作为关系来创建记录,但是使用EntityFramework难道不是吗?
我在这里想念什么?
在EF中,您可以使用虚拟集合定义一对多关系(您可以在此处查看更多信息 ):
public class RequiredPower
{
public int RequiredPowerID { get; set; }
[Required(ErrorMessage = "This field cannot be empty!")]
[MaxLength(25, ErrorMessage = "This name is too long. Max. 35 characters allowed!")]
[Display(Name = "Name:")]
public string Name { get; set; }
public int Position { get; set; }
public virtual ICollection<PowerConnector> PowerConnectors { get; set; }
public virtual ICollection<RequiredFuses> RequiredFuses { get; set; }
}
这样,您可以将PowerConnectors / RequiredFuses添加到RequiredPower并立即保存:
var somePower = new RequiredPower() {
Name = 'somePower'
};
var oneConnector = new PowerConnector() {
Name = 'oneConnector'
};
somePower.PowerConnectors.add(oneConnector);
somePower.SaveChanges(); // << this will create somePower and oneConnector in your database
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.