生成的我的实体数据模型(ASP.NET MVC)缺少我在数据库中创建的View ..为什么?

时间:2010-12-23 21:33:38

标签: sql-server asp.net-mvc ado.net-entity-data-model

我在SQL Server中创建了我的数据库,然后在Visual Studio中使用我的数据库创建了一个实体数据模型。除了一个特定的视图外,一切都很好,我的所有表和视图都生成了。此视图与其他视图之间的区别在于我在视图语法中使用UNION ALL。请参阅下面的SQL视图设置,下面是我在Visual Studio中的代码,它抱怨缺少v_contactMasterList

select clicontfin_cli_fk as clientPK,
contfin_firstName as FirstName, 
contfin_lastName as LastName, 
contfin_institutionName as InstitutionName,
contfin_contactType as ContactType 
from f_linkClientContactFinancial lccf
inner join f_contactFinancial cf on lccf.clicontfin_contfin_fk = cf.contfin_pk

UNION ALL

select clicontins_cli_fk as clientPK,
contins_agentFirstName as FirstName,
contins_agentLastName as LastName,
contins_agencyName as InstitutionName,
contins_contactType as ContactType
from f_linkClientContactInsurance lcci
inner join f_contactInsurance ci on lcci.clicontins_contins_fk = ci.contins_pk

UNION ALL

select clicontleg_cli_fk as clientPK,
contleg_FirstName as FirstName,
contleg_LastName as LastName,
contleg_firmName as InstitutionName,
contleg_contactType as ContactType
from f_linkClientContactLegal lccl
inner join f_contactLegal cl on lccl.clicontleg_contleg_fk = cl.contleg_pk

UNION ALL

select clicont_cli_fk as clientPK,
cont_FirstName as FirstName,
cont_LastName as LastName,
NULL as InstitutionName,
cont_contactType as ContactType
from f_linkClientContactPersonal lccp
inner join f_contactPersonal cp on lccp.clicont_cont_fk = cp.cont_pk

我的C#代码在下面 - 请注意,mainDB.v_contactMasterList.ToList()所在的位置是问题所在。它根本不识别v_contactMasterList。它识别所有其他数据库对象,例如我的表和我的其他视图:

public ActionResult Index()
{
   var viewModel = new ClientContactInformationViewModel
                       {
                          ClientContactRecords = mainDB.v_contactMasterList.ToList()
                       };
   return View();
 }

另外,请注意我声明SelectLifeManagementDBEntites的位置,它是如何看到的,它是从我的实体数据模型创建的,以及我的其他每个表和视图中的每一个。

当我创建此视图时,我只是将我的SQL语法复制并粘贴到视图SQL区域中,然后执行它。然后我保存了它。我确实得到一个对话框,说明包含UNION ALL运算符的视图无法在图表布局中以图形方式表示。这没关系,但我不知道这是否可能导致问题。请帮忙????提前谢谢..

1 个答案:

答案 0 :(得分:0)

事实证明,我必须在视图中包含一个主键字段才能在我的数据模型中显示。