当前位置:编程学习 > C#/ASP.NET >>

一个关于三层结构问题

我采用三层结构开发一个项目,现在有一个问题,比如我想根据实际需求情况在网站后台对产品表增加一个或多个字段怎么实现?前提该项目是三层结构开发的,各个层已编译过了,Model实体层映射表结构已编译不能改了。这时该如何添加新字段呢? --------------------编程问答-------------------- 不懂你的问题啊 --------------------编程问答-------------------- 嘿嘿,这个,,,说实话,没有好办法的,最好的办法就是MODEL层重编译,所有内容重写。因此其实做项目的时候,最讨厌的就是这种对数据结构的修改。
另,如果想个变通的办法的话,把新增的字段,放到新表中,不要修改原表,这样的话,或许可行,MODEL层不用重写 --------------------编程问答-------------------- 恕我愚昧,实体层映射表结构已编译,不可更改的意思是? --------------------编程问答-------------------- 三层。。view dal model controller --------------------编程问答-------------------- 谢谢各位的回复!
neell说的怎么把新建字段放到新表中呢?如果是放到新表中,那一条记录就要操作两个表!
n530956064,jhyuvip我指的是三层结构中实体层Model生成项目时会被编译成dll文件,如果要增加某个表字段,对应的实体类已被编译成dll文件这时怎么增加新字段呢。如:在表中增加了NewUrl字段,同时实体类也要增加
public string NewUrl
{
  get;set;
}


longai123 “三层。。view dal model controller” 能说具体一些吗?
--------------------编程问答-------------------- 看下来,重新编译实体类也许是个好方法。 --------------------编程问答-------------------- 先不管你所谓的“三层”是什么,当你说“已经编译不能改了”的时候,你就别纠缠什么抽象概念了。你所要做的就是额外的一个新系统,谁让你原来的代码“编译了不能改了”呢?

没有什么程序是不能改的。

如果果真不能改,那么就不要勉强去纠结“如何改”这种问题。 --------------------编程问答--------------------
引用 5 楼  的回复:
谢谢各位的回复!
neell说的怎么把新建字段放到新表中呢?如果是放到新表中,那一条记录就要操作两个表!
n530956064,jhyuvip我指的是三层结构中实体层Model生成项目时会被编译成dll文件,如果要增加某个表字段,对应的实体类已被编译成dll文件这时怎么增加新字段呢。如:在表中增加了NewUrl字段,同时实体类也要增加

C# code
public string New……
比如说人家公司不带你玩儿了,而你硬要跟着人家行动,那么你就自己管理自己的那部分呗! --------------------编程问答-------------------- 确实如此,如果改变了数据库结构,由于你的实体类无法更改,那么只有把新增的部分放在新表中,并另做一个包含原先实体类的新的实体类。这样,从表面上看,你还是一个三层架构。
只不过正如同楼上说的,“如果果真不能改,那么就不要勉强去纠结“如何改”这种问题。”这种项目就不要去接了,如果一定要接(比如客观上是否接,不由自己决定),那么我倒是建议:

抛弃三层架构!!!!!!!!!!!!!!!!!!
所有新增的部分,一律用最原始的方式去进行,比如页面直接操作数据库!!! --------------------编程问答-------------------- 是这样的,我做的是一个像PHPCMS的CMS系统,因为不同的使用者会有不同需求,比如产品后台管理只设有产品名称,价格,备注三个字段,其他由使用者自己增加如规格,编号等。如下图:
--------------------编程问答-------------------- 来就自己写个class,来继承别人的model --------------------编程问答-------------------- 自己实现的话只能用反射来做这样的功能,有的框架支持从数据库生成页面 --------------------编程问答-------------------- 所以 有经验的数据库管理员在建表的时候一般会预留下字段 来供将来临时增加,以及添加的时间的这个列,是否可以修改的列,和一个额外的列,这些对将来数据库的管理会有很大的帮助的 --------------------编程问答-------------------- 如果你程序不能改了,而且有字段是要后期扩展的,那你系统设计的初期,就要考虑下系统扩展性方面的了 --------------------编程问答-------------------- 语句执行啊。alter 表 add columnName --------------------编程问答-------------------- 楼主这种情况是需要增加两个表,一个表用于增加个性化的属性,另一个表用来保存每一条数据个性化参数的值 --------------------编程问答-------------------- 谢谢各位的热情回复。
我想到一个方法不知可否行:
条件:Model实体层要添加字段的表对应的实体类News,Web层新建的类TableModel。
首先在Web层添加一个TableModel类,然后让News继承TableModel类,这时一旦整个项目被编译后Model实体层会生成dll文件,当在后台要添加字段时就对Web层TableModel类进行文件式修改,不懂这样可行不!
项目结构图如下:
--------------------编程问答-------------------- --------------------编程问答--------------------
引用 17 楼  的回复:
谢谢各位的热情回复。
我想到一个方法不知可否行:
条件:Model实体层要添加字段的表对应的实体类News,Web层新建的类TableModel。
首先在Web层添加一个TableModel类,然后让News继承TableModel类,这时一旦整个项目被编译后Model实体层会生成dll文件,当在后台要添加字段时就对Web层TableModel类进行文件式修改,不懂这样可行不!
项目结构……
你源代码都有。。你就修改一下,编译一下,再重新上传DLL不就可以了吗? --------------------编程问答-------------------- 好吧,我现在也在用三层,每遇到一次数据库修改就头疼一次。。。。
最实在的方法,同楼上,改对应实体的源代码不就完了?
我还以为是在三层里添加自定义的代码呢。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,