InvalidCastException: невозможно преобразовать объект типа 'System.Guid' в тип 'System.String'. в asp. net core webapi - PullRequest
0 голосов
/ 03 мая 2020

Привет, я создаю webapi в asp. net ядре, когда я вызываю контроллер, он выдает ошибку, и это показывает, как я создаю модели и контроллер. Модель:

public class tblProject
{
    [Key]
    public Guid prj_id { get; set; }
    public string prj_name { get; set; }
    public string prj_endcustomer { get; set; }
    public string prj_customer_name { get; set; }
    public string prj_client { get; set; }
    public string prj_scope_of_supply { get; set; }
    public int prj_revision { get; set; }
    public bool isactive { get; set; }
    public DateTime created_date { get; set; }
    public string created_by { get; set; }
}

Контроллер:

[Route("api/[controller]")]
[ApiController]
public class CDProjectController : ControllerBase
{
    private readonly CDDbcontext _context;

    public CDProjectController(CDDbcontext context)
    {
        _context = context;
    }

    // GET: api/DCandidate
    [HttpGet]
    public async Task<ActionResult<IEnumerable<tblProject>>> GetDCandidates()
    {
        return await _context.tblProject.ToListAsync();
    }

    // GET: api/DCandidate/5
    [HttpGet("{id}")]
    public async Task<ActionResult<tblProject>> GetDCandidate(Guid prj_id)
    {
        var dCandidate = await _context.tblProject.FindAsync(prj_id);

        if (dCandidate == null)
        {
            return NotFound();
        }

        return dCandidate;
    }

Ответы [ 4 ]

0 голосов
/ 05 мая 2020

Обнаружил ошибку при использовании [FromRoute] работает. Спасибо всем за ваши ответы

0 голосов
/ 05 мая 2020

Сначала вам нужно проверить sql таблицу в столбце типа данных varchar или nvarchar. После в c# вызов метода, передавая параметр guid для установки типа строки.

Пример

string prj_id = System.Guid.NewGuid().ToString();

var dCandidate = await _context.tblProject.Where(p => p.prj_id == prj_id).SingleOrDefault();
0 голосов
/ 05 мая 2020

Для проверки другого примера

CREATE TABLE MathStudents1 (IID UNIQUEIDENTIFIER PRIMARY KEY по умолчанию NEWID (), StudentName VARCHAR (50)

) GO

INSERT INTO MathStudents1 VALUES (по умолчанию, 'Sally') ВСТАВИТЬ В MathStudents1 VALUES (по умолчанию, 'Edward')

0 голосов
/ 05 мая 2020

var dCandidate = await _context.tblProject.where (p => p.prj_id == prj_id) .singleOrdefault ();

...