ASP.NET Entity FrameWork связи двух таблиц

312
21 июля 2017, 00:49

Всем привет. Помогите пожалуйста. Пытаюсь сформировать модель и контроллер, чтоб при запросе на выходе выдавал ответ в json'e, а именно в формате:

{
  "results": [
    {
      "id": 1,
      "name": "Название темы",
      "discription": "Тут какой либо текст",
      "author": {
        "id": 1,
        "login": "admin"
      },
      "adress": "ул. Пермская"
    },
    {
      "id": 2,
      "name": "Название темы",
      "discription": "Тут какой либо текст",
      "author": {
        "id": 2,
        "login": "Oleg"
      },
      "adress": "ул. Пермская"
    }
  ]
}

Вот модели которые описал в одном классе

[Table("points")]
    public class point
    {
        [Key, Column("id_p")]
        public int id { get; set; }
        public string name { get; set; }
        public string discription { get; set; }
        public int author { get; set; }
        public string address { get; set; }
    }
    [Table("user")]
    public class user
    {
        [Key]
        public int id { get; set; }
        public string login { get; set; }
        public string password { get; set; }
        public string email { get; set; }
        public string firstname { get; set; }
        public string lastname { get; set; }
        public string photo { get; set; }
    }
    [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class pointContext : DbContext
    {
        public pointContext() : base("conn")
        { }
        public DbSet<point> points { get; set; }
        public DbSet<user> users { get; set; }
    }

Сама БД как заметили MySQL

Answer 1

У вас есть контекст, используйте его для получения данных из БД:

    using(pointContext db = new pointContext())
    {
        user user = db.users.FirstOrDefault(e => e.login == "admin"); // получение пользователя с логином admin
        List<point> points = db.points.ToList(); // все значения из таблицы points
        List<point> pointsByUser = db.points.Where(e => e.author == user.id).ToList(); // значения из таблицы points для конкретного пользователя
    }

Получаете данные, записываете в объект, который описывает ваш json и сериализуете в json

using Newtonsoft.Json;
...
jsonObject jsObj = new JsonObject();
...
string json = JsonConvert.SerializeObject(jsonObject);
READ ALSO
Возврат из метода return

Возврат из метода return

Помогите разобрать выполнения по этапам

322
Передача большого тела сообщения ASP NET CORE REST API

Передача большого тела сообщения ASP NET CORE REST API

Имеется PUT метод, в котором в теле HTTP запроса приходят большие данныеИмеется MIddleware для проверки аутентификации пользователя

257
Selenium + Chrome WebDriver get user console output

Selenium + Chrome WebDriver get user console output

I want to get some user console outputFor example, I do driver

277
Как выбрать все элементы в DOM и сделать их кликабельными

Как выбрать все элементы в DOM и сделать их кликабельными

Доброго времени сутокНужна помощь Есть таблица, хочу каждый элемент сделать кликабельным Вот так работает :

313