Вытащить разные столбцы из разных таблиц с помощью LINQ - PullRequest
0 голосов
/ 23 марта 2011

У меня есть две таблицы:

Сущность
ID (PK), int
Имя
Описание

Пользователи
ID (PK)
EntityID, int (это не связано с таблицей Entity)

Теперь я использую LINQ для извлечения записей, имеющих Entity.ID= что-тоКоторый покажет мне пару записей в моем GridView.

Вот мой оператор LINQ:

protected void Page_Load(object sender, EventArgs e)
{
    string getEntity = Request.QueryString["EntityID"];
    int getIntEntity = Int32.Parse(getEntity);
    OISEntityTestingDataContext db = new OISEntityTestingDataContext();
    //OISLinqtoSQLDataContext db = new OISLinqtoSQLDataContext();
    var tr =
        from r in db.Users
        join s in db.Entities on r.UserID equals s.ID
        where s.ID == getIntEntity
        select new
        {
            //To Show Items in GridView!
        };

    GridView1.DataSource = tr;
    GridView1.DataBind();
}

Теперь здесь я получаю сообщение об ошибке 'join':

Неверно указан тип одного из выражений в предложении соединения.Ошибка вывода типа при вызове «Join».

Что это значит?Может кто-нибудь, пожалуйста, помогите мне в этом.Спасибо!

Ответы [ 2 ]

1 голос
/ 23 марта 2011

По существу, полученная вами ошибка говорит о том, что компилятор не знает способа сравнения двух значений, поскольку одно отличается от другого. Вы уверены, что не сравниваете string с int? Если это ваш случай, вы можете явно проанализировать строку, как показано ниже:

var tr =
    from r in db.Users
    join s in db.Entities on int.Parse(r.UserID) equals s.ID
    where s.ID == getIntEntity
    select new
    {
        //To Show Items in GridView!
    };
0 голосов
/ 23 марта 2011

Держу пари, что тип одного из ваших условий соединения не совпадает с типом другого.

Тип одного из выражений в предложении соединения неверен.

Убедитесь, что они совпадают в ваших сопоставлениях сущностей.

В своем сообщении вы перечисляете свои таблицы как имеющие столбец "ID", но в объединении одна - это ID, а другая - UserID.Вы уверены, что присоединились к правильному столбцу?

...