【问题标题】:MVC 3 EF basic architecture questionMVC 3 EF 基本架构问题
【发布时间】:2011-08-25 17:06:08
【问题描述】:

我是 MVC / EF 新手。

我的数据库中有几个不同的表:比如柠檬、糖和水。

我应该创建三个独立的模型:柠檬、糖和水,还是创建一个定义三个不同类(具有三个独立的 DBContext 类?)的大模型,然后为每个模型搭建支架?

现在我正在制作单独的模型,但看起来我最终必须制作三个单独的数据库,这似乎有点过头了。

电影示例只有一张表,所以不能很好地回答我的问题。

【问题讨论】:

  • 需要更多细节。你是先做代码或模型还是先做数据库?尝试先从数据库开始。什么电影? MVC 与此有什么关系?
  • 是的,请进一步澄清——三个独立的数据库?你是说模特吗?

标签: entity-framework asp.net-mvc-3 ef-code-first code-first


【解决方案1】:

您可以有 3 个模型类(每个实体一个)

public class Lemon
{
}

public class Sugar
{
}

public class Water
{
}

并为他们创建一个 DbContext:

public class MyContext:DbContext
{
    public DbSet<Lemon> LemonSet
    public DbSet<Sugar> SugarSet
    public DbSet<Water> WaterSet
}

这样,您将使用带有 3 个模型类和一个数据库的 EF Code First

希望这会有所帮助:)

【讨论】:

  • 糟糕。所以我所做的是我有一个 Lemon.cs、一个 Sugar.cs 和一个 Water.cs 文件,每个文件都有自己的派生自 DbContext 的类。是否值得重新开始,甚至是否重要?到目前为止,我可以做任何我想做的事情,但我想知道它是否会在未来带来很多额外的工作。我猜如果 DbSet 都定义在同一个类中,我仍然可以做脚手架......你会重做吗?
  • DbContext 类型代表您的数据库,这意味着您应该只有一个。使用 EF Code First,实体(模型)应该是 POCO(Plain Old CLR Objects,意思是:简单的类)。所以,答案是,是的,我肯定会重做;)
  • 优秀。效果很好。非常感谢!
猜你喜欢
  • 2011-10-16
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
相关资源
最近更新 更多