1:n关系是m:n,其中SqlTypeProvider位于F#?

1:n关系是m:n,其中SqlTypeProvider位于F#?,f#,type-providers,F#,Type Providers,我有一个非常简单的数据库: 房间位于房子里 这房子可以有多个房间 每个房间都在一个房子里 使用F#SQL类型提供程序,一个房间似乎有多个房屋: let oneRoom = db.Rooms |> Seq.head let addressOfHouse = (oneRoom.``dbo.Houses by id`` |> Seq.head ).Address 为什么要从一个房间到达住址,就必须有头 Sql模式: CREATE TABLE [Houses] ( [id] in

我有一个非常简单的数据库:

  • 房间位于房子里
  • 这房子可以有多个房间
  • 每个房间都在一个房子里
使用F#SQL类型提供程序,一个房间似乎有多个房屋:

let oneRoom = db.Rooms |> Seq.head
let addressOfHouse = (oneRoom.``dbo.Houses by id`` |> Seq.head ).Address
为什么要从一个房间到达住址,就必须有头

Sql模式:

CREATE TABLE [Houses] (
  [id] int IDENTITY (1, 1) ,
  [Address] nvarchar(255), 
 PRIMARY KEY ([id])
) 
GO

CREATE TABLE [Rooms] (
  [id] int IDENTITY (1, 1) ,
  [Description] nvarchar(255),
  [id_Houses] int, 
 PRIMARY KEY ([id])
) 
GO

ALTER TABLE [Rooms] ADD FOREIGN KEY (id_Houses) REFERENCES [Houses] ([id]);

INSERT INTO Houses VALUES ('Our house, in the middle of the street');
INSERT INTO Houses VALUES ('What a place for us to meet');

INSERT INTO Rooms VALUES ('Bedroom', 1);
INSERT INTO Rooms VALUES ('Bathroom', 1);
INSERT INTO Rooms VALUES ('Kitchen', 2);

架构是由

生成的,您是否能够将这两个表粘贴到SQL架构中,这可能会有帮助我在本地获得了此设置的虚拟版本,并且得到了完全相同的问题,我认为这可能是因为
[id\u house]
可以为空,但是,更改对数据库和ORM没有帮助的模式往往会返回许多内容的序列,即使它包含一个项目。这样想一想,什么类型的函数会使用这个输入
someFunc(x:'T)
someFunc(x:seq我刚刚在Linqpad中尝试过这个模式(我相信它使用linqsql来提供类型),它没有这个问题,我可以做
Rooms.First().Id\u housessentity.Address
(C#).是的。这正是奇怪的事情。有了C#和EF,一切都很好。所以我责怪类型提供者。。。