日期:2014-05-18  浏览次数:21008 次

WinForm一个窗体接收输入数据,数据属于不同表。
WinForm一个原料添加窗体,里面三个数据:原料ID,原料Name(属于原料表),供应商Name(属于供应商表)。
原料表(原料ID,原料Name,供应商ID) 供应商表(供应商ID,供应商Name) 两者关于供应商ID关联
相当于我接收的是供应商Name,经过Sql-Server存储过程转化成供应商ID存入原料表。

本来数据层的方法想写成 public static string AddMaterial(Material material)
但是供应商Name不属于material对象

基于三层的,想问一下,数据层方法该怎么写,思路就ok。 谢谢各位了。

------解决方案--------------------
如果你只能传递 material的话,你数据层方法中必须通过 material可以得到供应商的相关信息才行,否则无法更新

所以你要整体看你的框架和需求,传递什么更灵活,更有效率,如果能直接传递一个id过去或一个name过去不是更直接
------解决方案--------------------
要不在Material 实体里面添加name属性,要么在后台处理的时候动态获取name值保存到数据库中就行了。
------解决方案--------------------
可以把实体对象做参数。

在UI端要么新构建一个对象,要么根据ID等信息还原出一个对象(当然了,对C#来说都是new了一个实体对象,只不过初始属性来源不同,一个来自界面的输入,一个来自数据库)