C# 调用WCF RIA服务会导致空值,即使URI调用有效
我觉得我在使用WCF RIA服务时,一次又一次地遇到了困难 我有一个WCF RIA服务方法,它根据您传递给它的ID参数返回employee。它使用以下方法处理对URI的ajax调用:C# 调用WCF RIA服务会导致空值,即使URI调用有效,c#,wcf,wcf-ria-services,visual-studio-lightswitch,C#,Wcf,Wcf Ria Services,Visual Studio Lightswitch,我觉得我在使用WCF RIA服务时,一次又一次地遇到了困难 我有一个WCF RIA服务方法,它根据您传递给它的ID参数返回employee。它使用以下方法处理对URI的ajax调用: /WCF_RIA_ServiceData.svc/GetEmployeeByID?EmployeeID=1 我想在MVC控制器中使用相同的查询,因此我尝试了以下方法: // GET: /Employee/Details/5 public ActionResult Details(int id) { WCF
/WCF_RIA_ServiceData.svc/GetEmployeeByID?EmployeeID=1
我想在MVC控制器中使用相同的查询,因此我尝试了以下方法:
// GET: /Employee/Details/5
public ActionResult Details(int id)
{
WCF_RIA_ServiceData y = new WCF_RIA_ServiceData();
WCF_RIA_ServiceDataService z = new WCF_RIA_ServiceDataService();
WCF_RIA_Project.Employee employee = (WCF_RIA_Project.Employee)y.GetEmployeeByID(id);
WCF_RIA_Project.Employee employee2 = (WCF_RIA_Project.Employee)z.GetEmployeeByID(id);
ViewData["EmployeeID"] = id;
ViewData["EmployeeFirstName"] = employee.FirstName;
ViewData["EmployeeLastName"] = employee.LastName;
return View();
}
以下是WCF RIA服务中的方法:
[Query(HasSideEffects = true)]
public IQueryable<WCF_RIA_Project.Employee> GetEmployeeByID(int? EmployeeID)
{
var empData = from Employee in this.Context.Employees
where Employee.Id == EmployeeID
select new WCF_RIA_Project.Employee
{
ID = Employee.Id,
FirstName = Employee.FirstName,
LastName = Employee.LastName
};
return empData;
}
我能够解决这个问题,似乎我的主要问题是在错误的名称空间中。默认的是Lightswitch实现,它(我想?)是自动生成的 如果任何人感兴趣,以下是所有工作代码: 控制器方法:
public ActionResult Details(int id)
{
WCF_RIA_Project.WCF_RIA_Service wcfria = new WCF_RIA_Project.WCF_RIA_Service();
WCF_RIA_Project.Employee employee = wcfria.GetEmployeeByID(id);
ViewData["EmployeeID"] = id;
ViewData["EmployeeFirstName"] = employee.FirstName;
ViewData["EmployeeLastName"] = employee.LastName;
return View();
}
WCF RIA服务方法:
[Query(IsComposable=false)]
public Employee GetEmployeeByID(int? EmployeeID)
{
var empData = from Employee in this.Context.Employees
where Employee.Id == EmployeeID
select new Employee
{
ID = Employee.Id,
FirstName = Employee.FirstName,
LastName = Employee.LastName
};
return empData.Single();
}
[Query(IsComposable=false)]
public Employee GetEmployeeByID(int? EmployeeID)
{
var empData = from Employee in this.Context.Employees
where Employee.Id == EmployeeID
select new Employee
{
ID = Employee.Id,
FirstName = Employee.FirstName,
LastName = Employee.LastName
};
return empData.Single();
}