Как структурировать базу данных и создать API для одной и той же базы данных, если один пользователь является членом нескольких стран - PullRequest
0 голосов
/ 28 января 2019

Я создал одно приложение, в котором пользователь имеет доступ к приложению в соответствии со спецификацией страны, и один пользователь может быть членом нескольких стран.Итак, я создал две таблицы, одну для данных пользователя и другую для хранения таблицы стран.

Дизайн таблицы, который я пробовал: -
1 st table (Users table):- UserID (Primary Key), Name, EmailId, UserRole
2 nd таблица (Country table) :- UserId (foreign key),CountryId (primary key), Country_name

Я создал ASP.NET MVC GET & POST api & в Single Get Request (api/GetUser(id)), я хочу получить все данные этого пользователя, которые можно получитьиспользуя запрос соединения между этими двумя таблицами.

Код: -

public IQueryable<tblUserRecord> GettblUserRecords()
{
           var query = (from g in db.tblUserRecords
                         join u in db.tblCountryNames on g.UserId equals u.UserId
                         select new { g, u, });
            return query;
}

Проблема / ошибка, с которой я сталкиваюсь: -

Код серьезности Описание Строка файла проектаОшибка состояния подавления CS0266 Невозможно неявно преобразовать тип 'System.Linq.IQueryable <>' в 'System.Linq.IQueryable'.Существует явное преобразование (вам не хватает приведения?)

Чтобы решить вышеуказанную проблему, я попытался изменить тип возвращаемого значения функции на List<tblUserRecord>, также изменив return query на return query.toList().Но ничего не работает


Примечание : - При создании модели сущностей я выбрал обе таблицы.

1 Ответ

0 голосов
/ 28 января 2019

Если вы хотите вернуть данные как в модели tblUserRecord, так и в модели tblCountryName, вы можете создать модель-обертку для хранения этих данных, и ваш метод вернет ее.Это может выглядеть следующим образом:

public class UserAndCountry 
{
    public tblUserRecord UserRecord {get; set;}
    public tblCountryName CountryRecord {get; set;}
}

, тогда ваш метод запроса ваших данных будет выглядеть так:IQueryable против List, как вы упомянули.Это происходит потому, что вы выбираете анонимный объект для построения IQueryable, но ваш метод определяет тип возвращаемого значения как IQueryable<tblUserRecord>.

Также обратите внимание, что, как правило, имена классов, как правило, пишутся в верхнем верблюде в .NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...