2013-02-22 44 views
0

我使用實體框架和我有使用存儲的過程來更新表,但我收到錯誤數據讀取器與型號不兼容。的類型的成員,而不是具有與相同名稱的數據讀取器的對應列

「數據讀取器是與指定模型「backupmodel.company」不兼容,該類型的companyid成員在數據讀取器中沒有相應的列,名稱相同。「

如何糾正this..Please建議soluntion ..

存儲過程:在

ALTER PROCEDURE [dbo].[sp_UpdateCompany] 
(
    @CompanyId int 
    ,@CompanyName varchar(50) 
    ,@CompanyUrl varchar(50) 
    ,@CompanyType varchar(50) 
    ,@Country varchar(50) 
    ,@State varchar(50) 
    ,@ZipCode varchar(10) 
    ,@Industry varchar(50) 
    ,@RevenueSize int 
    ,@Vertical int 
    ,@Employee int 
) 
as 
BEGIN 
    set @CompanyUrl=REPLACE(@CompanyUrl,' ','') 
    UPDATE Companies 
    SET 
    [email protected], 
    [email protected], 
    [email protected], 
    [email protected], 
    [email protected], 
    [email protected], 
    [email protected], 
    [email protected], 
    [email protected], 
    [email protected] 
    where 
    [email protected]  
END 

示值誤差:

public ObjectResult<Company> sp_UpdateCompany(Nullable<global::System.Int32> companyId, global::System.String companyName, global::System.String companyUrl, global::System.String companyType, global::System.String country, global::System.String state, global::System.String zipCode, global::System.String industry, Nullable<global::System.Int32> revenueSize, Nullable<global::System.Int32> vertical, Nullable<global::System.Int32> employee) 
    { 
     ObjectParameter companyIdParameter; 
     if (companyId.HasValue) 
     { 
      companyIdParameter = new ObjectParameter("CompanyId", companyId); 
     } 
     else 
     { 
      companyIdParameter = new ObjectParameter("CompanyId", typeof(global::System.Int32)); 
     } 

     ObjectParameter companyNameParameter; 
     if (companyName != null) 
     { 
      companyNameParameter = new ObjectParameter("CompanyName", companyName); 
     } 
     else 
     { 
      companyNameParameter = new ObjectParameter("CompanyName", typeof(global::System.String)); 
     } 

     ObjectParameter companyUrlParameter; 
     if (companyUrl != null) 
     { 
      companyUrlParameter = new ObjectParameter("CompanyUrl", companyUrl); 
     } 
     else 
     { 
      companyUrlParameter = new ObjectParameter("CompanyUrl", typeof(global::System.String)); 
     } 

     ObjectParameter companyTypeParameter; 
     if (companyType != null) 
     { 
      companyTypeParameter = new ObjectParameter("CompanyType", companyType); 
     } 
     else 
     { 
      companyTypeParameter = new ObjectParameter("CompanyType", typeof(global::System.String)); 
     } 

     ObjectParameter countryParameter; 
     if (country != null) 
     { 
      countryParameter = new ObjectParameter("Country", country); 
     } 
     else 
     { 
      countryParameter = new ObjectParameter("Country", typeof(global::System.String)); 
     } 

     ObjectParameter stateParameter; 
     if (state != null) 
     { 
      stateParameter = new ObjectParameter("State", state); 
     } 
     else 
     { 
      stateParameter = new ObjectParameter("State", typeof(global::System.String)); 
     } 

     ObjectParameter zipCodeParameter; 
     if (zipCode != null) 
     { 
      zipCodeParameter = new ObjectParameter("ZipCode", zipCode); 
     } 
     else 
     { 
      zipCodeParameter = new ObjectParameter("ZipCode", typeof(global::System.String)); 
     } 

     ObjectParameter industryParameter; 
     if (industry != null) 
     { 
      industryParameter = new ObjectParameter("Industry", industry); 
     } 
     else 
     { 
      industryParameter = new ObjectParameter("Industry", typeof(global::System.String)); 
     } 

     ObjectParameter revenueSizeParameter; 
     if (revenueSize.HasValue) 
     { 
      revenueSizeParameter = new ObjectParameter("RevenueSize", revenueSize); 
     } 
     else 
     { 
      revenueSizeParameter = new ObjectParameter("RevenueSize", typeof(global::System.Int32)); 
     } 

     ObjectParameter verticalParameter; 
     if (vertical.HasValue) 
     { 
      verticalParameter = new ObjectParameter("Vertical", vertical); 
     } 
     else 
     { 
      verticalParameter = new ObjectParameter("Vertical", typeof(global::System.Int32)); 
     } 

     ObjectParameter employeeParameter; 
     if (employee.HasValue) 
     { 
      employeeParameter = new ObjectParameter("Employee", employee); 
     } 
     else 
     { 
      employeeParameter = new ObjectParameter("Employee", typeof(global::System.Int32)); 
     } 

     return base.ExecuteFunction<Company>("sp_UpdateCompany", companyIdParameter, companyNameParameter, companyUrlParameter, companyTypeParameter, countryParameter, stateParameter, zipCodeParameter, industryParameter, revenueSizeParameter, verticalParameter, employeeParameter); 
    } 

和我打電話像存儲過程:

BDE_backupEntities obj = new BDE_backupEntities(); 
public ActionResult Save(string Name, string Url, string RecordOwner) 
     { 
      var x = obj.Companies.ToList(); 
      x = (from n in obj.Companies where n.CompanyUrl.Contains(Url) select n).ToList(); 
      int? Id=x[0].CompanyId; 
      obj.sp_UpdateCompany(Id, Name, Url, "solutions", "USA", "us", "s1234", "IT", 0, 0, 0); 
      return View("CompanyDetails"); 
     } 

回答

0

如果您正在使用EF並使用具有輸出參數的存儲過程,則需要在函數導入中將返回類型標記爲NONE。

相關問題