Я новичок в ASP.NET и не могу найти ни решения, ни связанной с ним проблемы.
Я хочу обновить пользователя в базе данных с помощью уникального идентификатора сигнала через метод действиякоторый получает текущего подключенного пользователя.
Я использую базу данных первый подход.
При запуске запроса я получаю следующую ошибку:
System.InvalidOperationException:Тип сущности PartenaireResult не является частью модели для текущего контекста.
Дело в том, что PartenaireResult - это не сущность в моей таблице, а только класс для возврата данных.
Я попытался это решение безуспешно (только добавив еще одну строку подключения с именем "DefaultConnection", но я не понимаю концепцию NinjectWebCommons.
Я также попытался вставить этот коэффициент в свойКласс DbContext без удачи, как указано в этом thread :
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<PartenaireResult>().ToTable("PartenaireResult");
}
Вот нерабочий метод:
[Authorize(Roles = "partenaire")]
[Route("api/Partenaires/Me")]
public PartenaireResult GetClientsMe(string onesignal_id)
{
var connectedUser = GetConnectedUser(User);
connectedUser.onesignal_id = onesignal_id;
db.Entry(connectedUser).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
return connectedUser;
}
[Authorize(Roles = "partenaire")]
public static PartenaireResult GetConnectedUser(IPrincipal user)
{
var claimIdentity = user.Identity as ClaimsIdentity;
var claim = claimIdentity?.Claims?.FirstOrDefault(x => x.Type.Equals("IdClient", StringComparison.InvariantCultureIgnoreCase));
if (claim != null)
{
int idPartenaire;
if (int.TryParse(claim.Value, out idPartenaire))
{
using (var db = new UphairDbEntities())
{
var me = db.Partenaires.Find(idPartenaire);
PartenaireResult PartenaireRes = new PartenaireResult();
ObjectConverterHelper.CopyProperties(me, PartenaireRes);
return PartenaireRes;
}
}
}
return null;
}
Вот мой PartenaireResult
класс:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.AccessControl;
using System.Web;
using Uphair.EfModel;
namespace Uphair.Api.Models.Partenaire
{
public class PartenaireResult
{
public PartenaireResult()
{
}
public int IdPartenaire { get; set; }
public string NomComplet { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string PasswordSalt { get; set; }
public PartenaireType Type { get; set; }
public string Pays { get; set; }
public string Ville { get; set; }
public string CodePostale { get; set; }
public string Adresse { get; set; }
public Nullable<double> Lat { get; set; }
public Nullable<double> Lng { get; set; }
public string ImageUrl { get; set; }
public string CouvertureUrl { get; set; }
public string TelMobile { get; set; }
public Nullable<System.DateTime> DateNaissance { get; set; }
public bool ADomicile { get; set; }
public int SeDeplace { get; set; }
public string IdWallet { get; set; }
public string IdUserMango { get; set; }
public Nullable<System.DateTime> DateAjout { get; set; }
public string onesignal_id { get; set; }
public List<NoteItem> Notes { get; set; }
/**/
public double NoteGlobale { get; set; }
public bool Son { get; set; }
public bool Push { get; set; }
public string IdPhone { get; set; }
}
public class NoteItem
{
public int? IdClient { get; set; }
public string Commentaire { get; set; }
public string ImageUrl { get; set; }
public double Note { get; set; }
public DateTime? DateAjout { get; set; }
public int Valide { get; set; }
}
}
Буду признателен за любую подсказку.
Спасибо всем, кто найдет время, чтобы прочитать / ответить на этот пост.