Я пытаюсь отобразить название отдела, когда я вхожу сотрудников Фамилия на интерфейсе сайта, и это где я с проблемой !!! имен ExerciseDAL { общественного класса DepartmentDAO {Ошибка t t CS0266 Не удается неявно преобразовать тип «System.Linq.IQueryable <string>» в «» ExerciseDAL.Department
public DepartmentDAO() { }
public Department GetById(string departId)
{
Department reDpt = null;
DbContext _ctx;
try
{
_ctx = new DbContext();
var departments = _ctx.Departments;
var dept = departments.AsQueryable<Department>().FirstOrDefault(dpt => dpt.Id.ToString() == departId);
reDpt = dept;
}
catch (Exception ex)
{
Console.WriteLine("Problem " + ex.Message);
}
return reDpt;
}
}
}
Как вы можете видеть, где отходит я получаю CS0266 ошибок. dept.id - это объект, и мне приходится сравнивать его со строкой, но когда я делаю это, он не будет компилироваться.
Департамент Класс:
namespace ExerciseDAL
{
public class Department
{
public ObjectId Id { get; set; } //represents primary key
public string DepartmentName { get; set; }
}
}
DepartmentViewModel: Я буду также изменить код здесь, потому что я знаю, что это неправильно.
имен ExerciseViewModel { общественного класса DepartmentViewModel { частных DepartmentDAO _daos;
public string DepartmentsId { get; set; } //represents primary key
public string DepartmentName { get; set; }
public DepartmentViewModel()
{
_daos = new DepartmentDAO();
}
public void GetByDepart()
{
try
{
Department dpt = _daos.GetById(DepartmentsId);
DepartmentsId = dpt.Id.ToString();
DepartmentName = DepartmentName;
}
catch (Exception ex)
{
DepartmentsId = "not Found!";
}
}
}
}
DepartmentController: Я также буду менять код здесь, потому что я знаю, что это неправильно.
имен ExerciseWebSite { общественного класса DepartmentController: ApiController {
[Route("api/department/{departmentId}")]
public IHttpActionResult Get(string departmentId)
{
try
{
DepartmentViewModel dpt = new DepartmentViewModel();
dpt.DepartmentsId = departmentId;
dpt.GetByDepart();
return Ok(dpt);
}
catch (Exception ex)
{
return BadRequest("retrieve faild - " + ex.Message);
}
}
}
}
Employee.js:
$(function() {
$("#empbutton").click(function (e) {
var last = $("#TextBoxLastname").val();
ajaxCall("Get", "api/employees/" + last, "").done(function (data) {
if (data.Lastname !== "not found") {
$("#email").text(data.Email);
$("#title").text(data.Title);
$("#firstname").text(data.Firstname);
$("#phone").text(data.Phoneno);
ajaxCall("Get", "api/department/" + data.Id)
.done(function (depdata)
{
$("#departmentname").text(depdata.DepartmentName);
})
.fail(function (jqXHR, textStatus, errorThrown)
{ errorRoutine(jqXHR); });
}//end of if
else {
$("#firstname").text("Not Found");
$("#email").text("");
$("#title").text("");
$("#phone").text("");
$("#departmentname").text("");
}//end of else
}).fail(function (jqXHR, textStatus, errorThrown)
{ errorRoutine(jqXHR); });//end of ajax
Можете ли вы предоставить реальный код, а не скриншоты из кода? См. Эту статью -> http://stackoverflow.com/help/how-to-ask - В частности, раздел «Помогите другим воспроизвести проблему». – Jesse
Хорошо, сделаю, я просто подумал, что это может быть проще для людей: p – Gorilla