SQL Serverには、顧客とそのアドレス用の2つのテーブルがあります。
CREATE TABLE Customers
(
ID INT NOT NULL IDENTITY(1,1),
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50) NOT NULL,
DateOfBirth DATETIME2 NOT NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED ([ID] ASC)
)
CREATE TABLE CustomerAddresses
(
ID INT NOT NULL IDENTITY(1,1),
CustomerID INT NOT NULL CONSTRAINT [FK_CustomerAddresses_Customers] FOREIGN KEY([CustomerID]) REFERENCES [dbo].[Customers] ([ID]),
Street VARCHAR(100) NOT NULL,
City VARCHAR(50) NOT NULL,
Country VARCHAR(50) NOT NULL,
CONSTRAINT [PK_CustomerAddresses] PRIMARY KEY CLUSTERED ([ID] ASC)
)
EFdatamodelを生成し、DataContextを使用してそれに接続しました。特定の国のすべての顧客を獲得しようとしています。私のコードは次のとおりです。
static List<Customer> GetByCountry(string country)
{
MyDbContext MyContext = new MyDbContext ();
return MyContext.Customers.Where(x => x.CustomerAddresses.Where( y => y.Country == country)).ToList();
}
しかし、次のコンパイルエラーが発生します。
タイプ'System.Collections.Generic.IEnumerable'を'bool'に暗黙的に変換できません。ブロック内の一部の戻り型がデリゲート戻り型に暗黙的に変換できないため、ラムダ式をデリゲート型'System.Func'に変換できません。
私はここで何が間違っているのですか?