【问题标题】:Entity Framework error: Could not find the conceptual model type实体框架错误:找不到概念模型类型
【发布时间】:2013-04-09 04:39:01
【问题描述】:
 public ViewResult List(string category,int page = 1)
    {
        ProductsListViewModel viewModel = new ProductsListViewModel
        {
            Products = repository.Products
            .Where(p => category == null || p.Category == category)
            .OrderBy(p => p.ProductID)
            .Skip((page - 1) * PageSize)
            .Take(PageSize),

            PagingInfo = new PagingInfo
            {
                CurrentPage = page,
                ItemsPerPage = PageSize,
                TotalItems = category == null?repository.Products.Count():repository.Products.Where(e => e.Category == category).Count()
            },

            CurrentCategory = category
        };
        return View(viewModel);
    }

它抛出一个异常说“找不到 SportsStore.Domain.Concrete.ORM.Product 的概念模型类型。” 我想这与我手动添加的 SportStore.edmx 文件有关,但本书只是提到了这个文件,就好像它已经存在一样,实际上不是。所以我必须自己创建ORM,然后抛出异常。我不知道如何检查这个问题,thx..

【问题讨论】:

    标签: entity-framework entity-framework-4


    【解决方案1】:

    我也在阅读这本书(Pro Asp.Net MVC 3 Framework),发现了同样的错误/问题。

    似乎作者从使用ObjectContext 切换到“DbContext”(或相反)并且没有清理他的示例。前者是 EntityFramework 4.0 的旧 API,后者是 4.1 的 API。 DbContext 也只是 ObjectContext 的包装,所以它们做同样的事情。

    如果您查看第 10 章的代码示例,您会发现他使用实体数据模型 (.edmx) 来建立数据库和模型之间的连接,而在整本书中他一直使用“代码-第一种方法是DbContext

    事实上,第 9 章中的这一节是他唯一一次提到 Concrete/ORM 文件夹,而这个 .edmx 模型进一步证明了这是本书前一版本留下的内容。

    总结一下:您不需要这个 .edmx 模型文件,也不需要更新概念模型。该框架应该能够将代码中的 Product 模型片段连接到数据库中的 Product 表。

    这是一个相关的问题,可能会提供一些见解: Using DbContext and Database First in EF 4.1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多