将行插入到从另一个表中获取FK的表中 - linq -c#

时间:2009-07-23 17:16:05

标签: c# linq

我有2个表,客户端和ClientInterests。 PK / FK是GUID类型的ClientID

这是我的Linq,我想在其中插入ClientIneterests表

    ClientInterestRegistration clientRegisteration = new ClientInterestRegistration
{
    ClientID = (from v in DB.Clients
                where v.Email.Equals(EmailAddress)
                select new {v.ClientID}).Single(), 

    ClientInterest = SelectedInterests,
    ..
};

收到的错误是: 无法将System.Linq.IQueryable<AnonymousType#1>类型隐式转换为System.Guid

1 个答案:

答案 0 :(得分:0)

首先,请考虑从查询中删除new {...}并将其更改为:

ClientID = (from v in DB.Clients
            where v.Email.Equals(EmailAddress)
            select v.ClientID).Single()

您正在做的是创建一个以ClientID为属性的新结构。

但是,您根本不应直接使用键列。尝试将Client直接设置为对象:

Client = (from v in DB.Clients
          where v.Email.Equals(EmailAddress)
          select v).Single()