EF4.1 code first生成数据库的一个问题~~

wlf535944903 2011-05-25 10:59:02
很常见的一个问题 学生表 课程表 学生课程关系表 一般关系表里会有成绩
这是我希望 EF生成数据库的表的样子

实体类 学生实体类 下面有课程的集合 课程实体类 下面有学生的集合 这样就会自动生成 学生表 课程表 学生课程关系表 但是课程表里没有 成绩..... 请问这个成绩应该加哪 ? 怎么加? 才能实现关系表里有成绩呢?

在博客园里 和领域驱动的群里 问了下 这个的设计 图是这样的 但是EF生成不了....




有谁知道怎么解决么? 谢谢...
...全文
958 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenqf2008 2011-07-05
  • 打赏
  • 举报
回复
算解决了吗?

类的设计按11楼就可以啊

public class User
{
public int UserId { get; set; }
public string UserName { get; set; }

public virtual List<Role> Roles { get; set; }
}

public class Role
{
public int RoleId{ get; set; }
public string RoleName{ get; set; }

public virtual List<User> Users{ get; set; }
}


然后在你的DbContext实现的类的OnModelCreating中建立关系即可代码大致如下:

modelBuilder.Entity<User>()
.HasMany<Role>(u=>u.Roles)
.WithMany(r=>r.Users)
.Map(m=>{
m.ToTable("CourseMark");
m.MapLeftKey("UserId");
m.MapRightKey("RoleId");
});
wlf535944903 2011-05-25
  • 打赏
  • 举报
回复
来个解决问题的吧
  • 打赏
  • 举报
回复
帮顶,学习学习
wlf535944903 2011-05-25
  • 打赏
  • 举报
回复

BlogDB BlogContext = new BlogDB();

public ActionResult Index()
{
var s = BlogContext.students;
Student model = new Student();
model.Name = "ds";
model.Id = "2";
s.Add(model);
BlogContext.SaveChanges();
return View();
}

报错... 更新条目时出错

对象名 'dbo.Students' 无效。
wlf535944903 2011-05-25
  • 打赏
  • 举报
回复
NH 就可以的 生成就没问题

一个 student包含多个 courseMark courseMark 包含一个 Course的引用 在NH就生成 为学生表 课程表 学生课程关系表 (有成绩) 郁闷
在EF就报错了

上代码


public class Entity
{
[Key]
public string Id { get; set; }
}

public class Student : Entity
{
public string Name { get; set; }
public float Kg { get; set; }
public float Age { get; set; }
public virtual IList<CourseMark> Marks { get; set; }
}
public class CourseMark:Entity
{
public Course Course { get; set; }
public double Score { get; set; }
}

public class Course:Entity
{
public string CourseName { get; set; }
public string CourseCode { get; set; }
}









下面是继承DbContext


public class BlogDB : DbContext
{

public DbSet<Course> Courses { get; set; }
public DbSet<CourseMark> CourseMarks { get; set; }
public DbSet<Student> students { get; set; }

}




wlf535944903 2011-05-25
  • 打赏
  • 举报
回复
关系表里有其他数据 应该是挺常见的吧? 大家都怎么解决的?

比如 投票 要有 投票人表 被投票人表 多对多的关系 (里面除了两个主键 还要有投票时间等字段)

实体类怎么设计的呢?
  • 打赏
  • 举报
回复
EF生成

帮顶。。。接点分
Lisliefor 2011-05-25
  • 打赏
  • 举报
回复
不会,帮忙顶下。
porschev 2011-05-25
  • 打赏
  • 举报
回复

何苦类。。又自己解决了。。

多想会再发上会死啊。。
kubbvip 2011-05-25
  • 打赏
  • 举报
回复
楼主会用Code First模式吧。按他的实体类操作一次就OK
kubbvip 2011-05-25
  • 打赏
  • 举报
回复
http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
wlf535944903 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 kubbvip 的回复:]

http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

找到这个。。楼主看看
[/Quote]
+1
差不多 实体类设计就是这样 ... 我英文不太好 不知道有没有这个的demo~
claymore1114 2011-05-25
  • 打赏
  • 举报
回复
你的代码 感觉可以, 这几张表 数据库没有生成 成功吧。
kubbvip 2011-05-25
  • 打赏
  • 举报
回复
http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

找到这个。。楼主看看
wlf535944903 2011-05-25
  • 打赏
  • 举报
回复
感谢大家的回答 一会儿结贴散分~~ 一会儿贴下详细的解决方法...
wlf535944903 2011-05-25
  • 打赏
  • 举报
回复
大概明白了 自己解决了 实体类的设计都对着呢....
是因为我数据库以前有别的表
vrhero 2011-05-25
  • 打赏
  • 举报
回复
各建一个导航属性EntityCollection<T>,关联之前映射的关系就OK了...
wlf535944903 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 vrhero 的回复:]

多对多非常简单啊,没有任何问题...“关系”映射到关系表就OK了...
[/Quote]

多谢回答 能否说下 实体类怎么设计呢?
vrhero 2011-05-25
  • 打赏
  • 举报
回复
多对多非常简单啊,没有任何问题...“关系”映射到关系表就OK了...
kubbvip 2011-05-25
  • 打赏
  • 举报
回复
没看清楚。。Sorry。。我尝试一下看看。
加载更多回复(4)
本课程系列通过对Mysql数据库的当前业界应用情况和未来发展应用前景的分析作为切入点,结合Mysql企业应用的热点关键功能,尽量用通俗易懂的方式讲给大家。本课程是作者收集了大量资料,参考很多讲师的精华内容,坚持半年利用业余时间,每天早上坚持录制一节课程,对内容不断的提炼打磨,不断的对知识点进行思考总结,最后把自认为满意的结果呈现给大家,个人精力有限难免有不足支持,希望大家多交流留言,提出宝贵意见,促使不断优化改进。本系列课程主要由以下部分组成:一,MySql概述数据库概念,主流数据库介绍,Mysql概述,MySql版本介绍,外围工具,MySql分支版本发展,数据库发展前景,数据库的应用发展。Mysql安装。二,MySql架构体系结构,sql执行过程,逻辑结构,物理结构,数据库实例,存储引擎 三,MySql常用操作数据库,权限表,表内容,常用函数,备份与恢复,存储过程,触发器,事务四,MySql优化需求设计SQL语句:索引的优化,sql语句的优化,表的优化运维配置角度五,MySql集群部署主从复制,读写分离六,高级应用(开发)Mybats访问数据库,JDBC,NET平台EF框架等操作数据库,Mysql在大数据项目中应用事务及分布式事务ß【课程目标 】Þ了解MySQl数据库架构 Þ掌握数据库基本操作Þ数据库设计一般方法 Þ数据库优化Þ数据库集群应用

62,046

社区成员

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

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

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

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