2013-07-11 101 views
1

您好我正在使用實體框架數據庫的第一個模型。我用我自己的存儲過程來訪問數據,我似乎有一些來自實體框架的類型結果。操作返回類型的實體框架模型首先

這是我的存儲過程:

ALTER PROCEDURE [eConnect].[GetUserPersonalDetails] 
@personId int 
AS 
BEGIN 
    SELECT Persons.FirstName   as FirstName, 
      Persons.MiddleName   as MiddleName, 
      Persons.LastName    as LastName, 
      Persons.DateOfBirth   as DateOfBirth, 
      Persons.CityOfBirth   as CityOfBirth, 
      Persons.BSN     as BSN, 
      Persons.SecondaryEmail  as SecondaryEmail, 
      Persons.HomePhone   as HomePhone, 
      Persons.WorkPhone   as WorkPhone, 
      Persons.MobilePhone   as MobilePhone, 
      MaterialAddress.StreetName as MaterialAddressStreetName, 
      MaterialAddress.PostCode  as MaterialAddressPostCode, 
      MaterialAddress.City   as MaterialAddressCity, 
      MaterialAddressCountry.Name as MaterialAddressCountry, 
      HomeAddress.StreetName  as HomeAddressStreetName, 
      HomeAddress.PostCode   as HomeAddressPostCode, 
      HomeAddress.City    as HomeAddressCity, 
      HomeAddressCountry.Name  as HomeAddressCountry, 
      PostalAddress.StreetName  as PostalAddressStreetName, 
      PostalAddress.PostCode  as PostalAddressPostCode, 
      PostalAddress.City   as PostalAddressCity, 
      PostalAddressCountry.Name as PostalAddressCountry, 
      Company.Name     as CompanyName, 
      Company.Phone    as CompanyPhone, 
      Avatar.FileName    as FileName, 
      Avatar.RealName    as RealName 
    FROM Sync_Persons as Persons 
    LEFT JOIN Sync_Addresses as MaterialAddress ON Persons.MaterialAddressID = MaterialAddress.AddressID 
               AND MaterialAddress.Deletion_Date IS NULL 
    LEFT JOIN Countries as MaterialAddressCountry ON MaterialAddress.CountryID = MaterialAddressCountry.CountryID 
                AND MaterialAddressCountry.Deletion_Date IS NULL 
    LEFT JOIN Sync_Addresses as HomeAddress ON Persons.HomeAddressID = HomeAddress.AddressID 
              AND HomeAddress.Deletion_Date IS NULL 
    LEFT JOIN Countries as HomeAddressCountry ON HomeAddress.CountryID = HomeAddressCountry.CountryID 
               AND HomeAddressCountry.Deletion_Date IS NULL 
    LEFT JOIN Sync_Addresses as PostalAddress ON Persons.PostalAddressId = PostalAddress.AddressID 
               AND PostalAddress.Deletion_Date IS NULL 
    LEFT JOIN Countries as PostalAddressCountry ON PostalAddress.CountryID = PostalAddressCountry.CountryID 
               AND PostalAddressCountry.Deletion_Date IS NULL 
    LEFT JOIN Sync_Companies as Company ON Persons.CompanyID = Company.CompanyID 
             AND Company.Deletion_Date IS NULL 
    LEFT JOIN Documents as Avatar ON Persons.AvatarPictureDocumentID = Avatar.DocumentID 
            AND Avatar.Deletion_Date IS NULL 
    WHERE Persons.PersonID = @personId 

並添加更新模型,並調用這個程序代碼後面:

m_DataContext.GetUserPersonalDetails(personId); 

我回到這一點:

ObjectResult<GetUserPersonalDetails_Result> 

在我的情況下,這個存儲過程將始終返回一個值,因爲personId將是我的表標識符。

我希望找回GetUserPersonalDetails_Result類型的對象。

如何告訴實體框架返回GetUserPersonalDetails_Result或如何將ObjectResult轉換爲GetUserPersonalDetails_Result?

回答

2

ObjectResult只是一個collection of results。您可以使用First(),Single()或任何您通常在收藏中獲得您想要的結果的東西。它變成了一個集合,因爲實體框架永遠不能保證你的存儲過程總是會返回一個結果。

相關問題