将存储过程添加到没有显示在.edmx中的复杂类型中(因此没有映射)



1 (mvc3)我已经将一个存储过程添加到我的模型中,并映射到一个complextype。

两个问题:

1) complextttypes .cs存在于Model1下的类中。但在。edmx中没有显示?
2)当我尝试创建一个具有强类型视图的控制器时,它会错误地指出它不能创建,因为complextttypes .cs不是DbContextEntities类的一部分?

如何将这个复杂类型添加到.edmx并映射到我的dbcontext(我已经使用表完成了此操作,但不确定我在存储过程中缺少什么?

谢谢!

对于那些刚刚从来这里搜索的人,,:)我将给出基本上必须做的事情来将存储过程映射到ADO。网络实体

数据库映射到EDMX文件(实体模型)时。实体模型自动映射表和复杂类型等。但是,在数据库中创建的存储过程没有映射为返回复杂类型。我们必须在Function导入中通过创建自己的复杂类型来映射它。这个复杂的类型可以在代码中访问。

操作如下:

  1. 右键单击函数导入添加新的函数导入
  2. 给函数命名,并指定存储过程和然后选择复杂类型(如果存储过程返回复杂类型)或者您可以选择标量。如果选择复合类型和您可以查看返回的列,并可以通过创建复合类型
  3. 因此,从存储过程返回的数据将是那些复杂类型的集合。

应该访问设计或模型视图来更新实体模型。您不能通过右键单击实体模型来更新实体模型。更新模型的选项仅在模型浏览器和数据库设计图上提供。该模型浏览器可以从VS2010/VS2012中的其他窗口的视图中获取。这些信息看起来很无聊。但是相信我,如果你是新手,这些在一开始看起来很大。

最可能的是,您将通过映射现有数据库来创建这个实体模型

请记住,即使您从数据库映射实体模型,您也可以通过删除不必要的实体(表)和创建复杂类型来自定义实体模型

最新更新