Как решить, что тип "system.int32" для типа "system.string" недопустим в MVC api ?
Привет
У меня система ошибку'.Типа int32' к 'системе.Тип String' не является допустимым в советы в MVC, API-интерфейс PLS я
Спасибо
Мейден
Ниже моего кода
Что я уже пробовал:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace advEditorials.Models { public class MoDetails { public int Id { get; set; } public string DocNo { get; set; } public DateTime PubDate { get; set; } public string MainSection { get; set; } public string SubSection { get; set; } public string Position { get; set; } public string Color { get; set; } public decimal SizeH { get; set; } public decimal SizeW { get; set; } public decimal Volume { get; set; } public decimal PageNumber { get; set; } public string Materials { get; set; } public string Remarks { get; set; } public string Status { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Web; namespace advEditorials.Models { public interface IMORepository { Task Add(MoDetails mo); Task Update(MoDetails mo); Task Delete(string id); Task<MoDetails> Getmo(string id); Task<IEnumerable<MoDetails>> GetmoALL(); } }
using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Threading.Tasks; using System.Web; namespace advEditorials.Models { public class MORepository :IMORepository { private readonly SqlDbContext db = new SqlDbContext(); // Retrive All public async Task<IEnumerable<MoDetails>> GetmoALL() { try { var mo = await db.tbl_Editorial.ToListAsync(); return mo.AsQueryable(); } catch { throw; } } // by ID public async Task<MoDetails> Getmo(string id) { try { MoDetails mo = await db.tbl_Editorial.FindAsync(id); if (mo == null) { return null; } return mo; } catch { throw; } } //Add public async Task Add(MoDetails mo) { mo.Id = Guid.NewGuid().ToString(); db.tbl_Editorial.Add(mo); try { await db.SaveChangesAsync(); } catch { throw; } } //Update public async Task Update(MoDetails mo) { try { db.Entry(mo).State = EntityState.Modified; await db.SaveChangesAsync(); } catch { throw; } } //Delete public async Task Delete(string id) { try { MoDetails mo = await db.tbl_Editorial.FindAsync(id); db.tbl_Editorial.Remove(mo); await db.SaveChangesAsync(); } catch { throw; } } private bool MOExists(string id) { return db.tbl_Editorial.Count(e => e.Id == id) > 0; } } }
Контроллер
using advEditorials.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Threading.Tasks; using System.Web.Http; namespace advEditorials.Controllers { public class EditorialController : ApiController { private readonly IMORepository _iMORepository = new MORepository(); [HttpGet] //[Route("api/Editorial/Get")] public async Task<IEnumerable<MoDetails>> Get() { return await _iMORepository.GetmoALL(); } [HttpPost] [Route("api/Editorial/Create")] public async Task CreateAsync([FromBody]MoDetails mo) { if (ModelState.IsValid) { await _iMORepository.Add(mo); } } [HttpGet] [Route("api/Editorial/Details/{id}")] public async Task<MoDetails> Details(string id) { var result = await _iMORepository.Getmo(id); return result; } [HttpPut] [Route("api/Editorial/Edit")] public async Task EditAsync([FromBody]MoDetails mo) { if (ModelState.IsValid) { await _iMORepository.Update(mo); } } [HttpDelete] [Route("api/Editorial/Delete/{id}")] public async Task DeleteConfirmedAsync(string id) { await _iMORepository.Delete(id); } } } DB Table
CREATE TABLE [dbo].[tbl_Editorial]( [id] [nvarchar](20) NOT NULL, [DocNo] [varchar](20) NULL, [pubdate] [date] NULL, [MainSection] [varchar](50) NULL, [SubSection] [varchar](50) NULL, [Position] [varchar](50) NULL, [Color] [varchar](20) NULL, [SizeH] [float] NULL, [SizeW] [float] NULL, [Volume] [float] NULL, [PageNumber] [float] NULL, [Materials] [varchar](100) NULL, [Remarks] [varchar](100) NULL, [Status] [varchar](20) NULL, [Category] [varchar](50) NULL ) ON [PRIMARY] GO
F-ES Sitecore
Вероятно, было бы полезно, если бы вы сказали, какая именно строка из 100 строк кода, которые вы вставили, вызывает ошибку.
Richard Deeming
Если вы хотите, чтобы кто-то помог вам исправить исключение, вам нужно опубликовать полное и точное сообщение об ошибке и указать, из какой строки кода оно было выброшено.
Не пытайтесь перефразировать или обобщить сообщение об ошибке, потому что в конечном итоге вы потеряете важную информацию из него.
Введите 'System.Int32' в поле 'System.Тип String' недопустим это не полное сообщение об ошибке.
Maideen Abdul Kader
Привет
Спасибо за быстрый ответ
Ошибка в модуле MORepository
Оператор '==' не может быть применен к операндам типа 'int' и 'string'
private bool MOExists(string id)
{
верните db.tbl_Editorial.Граф(е =&ГТ; электронная.Код == код) и gt; 0; (эта линия)
}
Это происходит при отладке.
Пожалуйста, посоветуйте мне
Спасибо
Мейден