最后60分求解 MVC3 多表数据绑定的问题

xiaoxiaosu2011 2011-10-27 10:38:25
本人在网上看了下贴子如下

public class Product
{
public int Id{get;set;}
public string name{get;set;}
public int CategoryId{get;set;}

public virtual Category Category{get;set;}
}
public class Category
{
public int CategoryId{get;set;}
public string Name {get;set;}
public string remarks{get;set;}
public virtual ICollection<Product> Products{get;set;}
}

public store Context:DbContext
{
public DbSet<Product> Products{get;set;}
public DbSet<Category> Categories{get;set;}
}

以上这样就可以建立关系实现如图功能



我的问题是这样的绑定,Category表我肯定也要做修改所以Category表字段多的话肯定是要全部列出来,但是在Product这个界面绑定下拉时事实在我只要用到(ID,Name)两个字段,那其它的字段每次也读出来,好像MVC中类名就是表名,又不能重新建个类只放两个字段?这个问题有没有解决方案啊?


另求如下表结构数据绑定要怎么绑
product表字段(ProdId,Name)
Category表字段(CateId,Name)
Prod_Cate表字段(Id,ProdId,CateId)

如果是这样,类要怎么建 MVC新手求解
...全文
465 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
老牛10岁了 2011-10-27
  • 打赏
  • 举报
回复
MVC,没接触呢,只能帮你顶一下了!
肖无疾 2011-10-27
  • 打赏
  • 举报
回复
今年TechED大会上,大衣衣讲到了几点
估计和大家不谋而合吧,以下为ppt中的一张
DomainModel!=ViewModel
符合需求的最小化ViewModel
有效验证
高安全性
高性能
使用一些Mapping工具,做双向映射填充
AutoMapper
EmitMapper
自定义的ORM - GenerPoint.ORM
使用专门的ViewModel填充逻辑,轻松解决国际化/本地化
kkbac 2011-10-27
  • 打赏
  • 举报
回复
比如老师和学科之间的多对多关系


/// <summary>
/// 老师
/// </summary>
public class Teacher : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public string Info { get; set; }
public DateTime CreateTime { get; set; }
public virtual List<TeacherCourse> TeacherCourses { get; set; }
}

/// <summary>
/// 学科
/// </summary>
public class Course : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public string Info { get; set; }
}
/// <summary>
/// 老师-学科.
/// </summary>
public class TeacherCourse
{
public int Id { get; set; }

public int TeacherId { get; set; }
public virtual Teacher Teachers { get; set; }

public int CourseId { get; set; }
public virtual Course Courses { get; set; }
}


efcodefirst刚好生成3个表. 老师表, 学科表, 多对多关系表.

其实我们普通的数据库设计多对多也是这样设计的啊. 只是多对多的表里面没有字段id.
xiaoxiaosu2011 2011-10-27
  • 打赏
  • 举报
回复
可能意思没表达清楚,我想知道的是模型层要怎么建
如我第一个问题中的模型一样用在这个多对多,那上面的模型要改成什么样才合适

至于页面编辑我想如果模型层建立好了,这个问题应该不是太大吧
kkbac 2011-10-27
  • 打赏
  • 举报
回复
你不是说页面上编辑的时候怎么绑定?

而是说怎么添加数据或修改数据?

添加
product p = .....;
category c = ....;
prod_cate pc = ...;
pc. product = p;
pc.category = c;

之后直接更新pc就可以了.

Db.prod_cates.add(pc);

Db.SaveChange();

修改删除大致是一样的.
xiaoxiaosu2011 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kkbac 的回复:]

多对多, 不好绑定的. 两个是脱离的关系,

我只是在product的下面再做个列表,显示下他的category, 反之也一样.
[/Quote]

http://blog.csdn.net/dengzhi3/article/details/5687931


这个blog上有讲这种关系,但是没代码,看不明白是什么意思,要不你帮我看下
kkbac 2011-10-27
  • 打赏
  • 举报
回复
多对多, 不好绑定的. 两个是脱离的关系,

我只是在product的下面再做个列表,显示下他的category, 反之也一样.
曼尼叔叔 2011-10-27
  • 打赏
  • 举报
回复
你这个视图是用创建模板生成的吧,那你再视图中只显示你要的字段,把其他字段的代码删掉就行了嘛
xiaoxiaosu2011 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kkbac 的回复:]

第一个, 应该是只读取需要的字段. 你可以监视下.

第二个, 在修改页面下面多一个列表. 比如product的修改页面下面,多一个所有他的Category的列表.
[/Quote]

第二个是啥意思,写段代码来看看呢

关于第一个,我监视下看看
kkbac 2011-10-27
  • 打赏
  • 举报
回复
第一个, 应该是只读取需要的字段. 你可以监视下.

第二个, 在修改页面下面多一个列表. 比如product的修改页面下面,多一个所有他的Category的列表.
xiaoxiaosu2011 2011-10-27
  • 打赏
  • 举报
回复
今天坛子里人少的嘛,都没有人来帮忙下啊

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧