Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Linq查询和SQLite插入多个表(一对一关系)_C#_.net_Linq_Sqlite_Windows Store Apps - Fatal编程技术网

C# 使用Linq查询和SQLite插入多个表(一对一关系)

C# 使用Linq查询和SQLite插入多个表(一对一关系),c#,.net,linq,sqlite,windows-store-apps,C#,.net,Linq,Sqlite,Windows Store Apps,我有三个类:Tab、Webpage和base。My Tab类包含一个网页对象。比如说: public class Tab : Base { public Webpage webpage {get; set;} //other code } public class Webpage : Base { public string url {get; set;} //other code } public class Base { public int id {get

我有三个类:Tab、Webpage和base。My Tab类包含一个网页对象。比如说:

public class Tab : Base
{
   public Webpage webpage {get; set;}
   //other code
}

public class Webpage : Base
{
   public string url {get; set;}
   //other code
}

public class Base
{
   public int id {get; set;}
   //other code
}
我正在尝试使用linq查询插入选项卡对象,但是当我执行dbConn.insert(myTabObj)时,它将在尝试插入网页时返回错误。现在我知道我可以序列化它并存储在表中

但是,我想知道是否有一种方法可以自动将网页添加到网页表中,并将该网页的id存储在选项卡表中


编辑:或者可以在网页对象内部“查看”并将url存储在选项卡表中。但是在检索时,它会再次将url存储在网页对象中。

首先,确保使用O/R设计器正确设计并链接了
选项卡
网页
类。您需要设置外键约束,以便linqtosql能够识别
id

演练:创建LINQ到SQL类(O/R设计器)

然后,可以使用InsertOnSubmit函数来计划将新对象插入到两个表中

YourDBDataContext dataContext = new YourDBDataContext();
...

Webpage page = new Webpage();
page.id = "p1";
page.url = "http://stackoverflow.com";
dataContext.InsertOnSubmit(page);

Tab tab = new Tab();
tab.id = "t1";
tab.webpage = page;
dataContext.InsertOnSubmit(tab);

dataContext.SubmitChanges();

更好的选择是不将其存储在DB中,为页面分配一个id,并在该id前面插入Url,该id将指向或链接您的页面。然而,你的要求是什么将决定最终的答案,所以如果你能详细阐述一下你的要求。很抱歉,我没有提到我的实现有点复杂。为了回答这个问题,我把这个例子简化了一点。我还跟踪每个选项卡的导航历史记录,并存储页面标题和其他内容。我希望在应用程序关闭后保持这种状态,因此我使用sqlite db来存储信息。