如何仅使用文本框将数据插入外键属性

编程入门 行业动态 更新时间:2024-10-26 22:25:44
本文介绍了如何仅使用文本框将数据插入外键属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有两个表,如下所示,MainMember上有一个外键。每个成员可能有一个受抚养人。我想只使用文本框将数据插入主成员表。没有下降,包括外键属性 我尝试过:

public class MainMember { public int Id {get; set;} public string Name {get; set;} public string PassportNumber {get; set;} [ForeignKey(Dependent)] public int DepId {get; set;} public string DepName {get; set ;} public string DepPassportNumber {get; set;} public Dependent Dependent {get; set;} } public class Dependent { public int Id {get; set;} public string Name {get; set;} public string PassportNumber {get; set} } 我正在使用tdd开发一个mvc应用程序,所以我有一个名为Insert的业务逻辑方法,它继承自我的存储库文件夹 public interface IMaimMemberRepository:IDsposable { void Insert(订单模型); } 此后,我在MainMemberRepository类中实现了上述方法。 public void Insert(MainMemberViewModel model) { using(var db = new MainMemberRepository()) { db.Insert (new MainMember { Name = model.Name, PassportNumber = model.PassportNumber, DepName = model.DepName, DepPassportNumber = model.PassportNumber }; ) 在我的控制器中 public ActionResult Insert(MainMemberViewModel model) { var business = new MainMemberBusiness(); business.Insert(model); 返回查看(): }

解决方案

你的方式它设置你的成员只能有一个依赖。我建议改为以下设置。

[Key] public int MemberId { get ; set ;} public string 名称{获取; set ;} public string PassportNumber { get ; set ;} public ICollection< Dependent>受抚养人{获取; 设置;}

您的受抚养人应该是这样的

[Key] public int DependentId { get ; set ;} [ForiegnKey ( 成员)] {获取 ; set ;} public int MemberId { get ; set ;} // 标记我所属的成员 public string 名称{ get ; set ;} public string PassportNumber { get ; set ;} public virtual 会员{获取; 设置;}

我总是使用像MemberId和DependentId这样的ID,以便它的目的很明确。不是要求,个人偏好。如果您正在查看所有使用过的地方的代码,那么搜索全名就很方便了。 因此每个Dependent都有MemberId,以便您(或实体)框架或其他一些ORM)可以将所有相关的家属与会员联系起来。 您的会员类将具有ICollection< dependent>作为其中一个属性。 Dependent将拥有一个Member属性。 要处理外键,您必须保存该成员并在保存后获取该成员ID,然后在尝试保存之前在每个Dependents中设置MemberId它。像Entity Framework这样的ORM可以为您执行此操作。 (还有另一个选项,在两个名为'Person'和Member& Dependent的单独表格中使用两者之间的共同点,每个选项都延伸出来。) 关于用文本框填充项目的问题,你没有显示任何视图代码,所以我不知道如何帮助那里。 Mike

I have two tables as seen below with a foreign key on MainMember. Each member may have a dependent. I want to insert data into the main member table using only text boxes. Not drop downs, including the foreign key attributes What I have tried:

public class MainMember { public int Id { get;set;} public string Name { get;set;} public string PassportNumber { get;set;} [ForeignKey("Dependent")] public int DepId { get;set;} public string DepName { get;set;} public string DepPassportNumber { get;set;} public Dependent Dependent {get;set;} } public class Dependant { public int Id { get;set;} public string Name { get;set;} public string PassportNumber {get;set} } I am developing an mvc application using tdd, so I have a business logic method named Insert which inherits from my repository folder public interface IMaimMemberRepository : IDsposable { void Insert(Order model); } Thereafter I implement the above method in my MainMemberRepository class. public void Insert(MainMemberViewModel model) { using(var db = new MainMemberRepository()) { db.Insert(new MainMember { Name= model.Name, PassportNumber = model.PassportNumber, DepName= model.DepName, DepPassportNumber = model.PassportNumber }; ) In my controller public ActionResult Insert(MainMemberViewModel model) { var business = new MainMemberBusiness(); business.Insert(model); return View(): }

解决方案

The way you have it set up your members can only have one dependent. I would suggest the following setup instead.

[Key] public int MemberId {get;set;} public string Name {get;set;} public string PassportNumber {get;set;} public ICollection<Dependent> Dependents {get;set;}

Your dependent should be like this

[Key] public int DependentId {get;set;} [ForiegnKey("Member")] {get;set;} public int MemberId {get;set;} // marks the member I belong to public string Name {get;set;} public string PassportNumber {get;set;} public virtual Member Member {get;set;}

I always use ids like MemberId and DependentId so that its purpose is clear. Not a requirement, a personal preference. If you're looking through code for all the places where you used something, it's handy to have that full name to search. So each Dependent has the "MemberId" in it so that you (or Entity Framework or some other ORM) can tie all the related Dependents to the Member. Your Member class will have a ICollection<dependent> as one of its properties. The Dependent would have a Member property. To deal with the foreign key you have to save the member and get the member id after it's saved, then set the MemberId in each of the Dependents before trying to save it. An ORM like Entity Framework with do this for you. (there's another option that uses anything that's common between the two in a separate table called 'Person' and Member & Dependent each extend from that.) As to your question about filling the items with text boxes, you're not showing any of the view code so I'm not sure how to help there. Mike

更多推荐

如何仅使用文本框将数据插入外键属性

本文发布于:2023-10-14 21:38:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1492287.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文本框   属性   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!