2008-12-05 36 views
1

我已经为LINQ to SQL映射创建了一个DBML文件,并将所有表格拖入设计器表面之后。在每个表格的属性中,“删除”,“插入”和“更新”都是灰显的,因此它们不可编辑,就像它们被禁用一样。我不确定这是为什么。有谁知道如何做到这一点,以便我可以插入,更新和删除这些表内的值?LINQ DBML不让我插入,更新,删除或从任何表中选择数据?为什么?

我也知道我有写权限,因为我已经写了这些表在相同的用户ID。

回答

4

你的表是否有主键?如果没有要使用的密钥,LINQ to SQL将不允许您更改数据。我在遗留系统中遇到过很多问题。很多时候,表使用的是事实上的密钥,但它并没有专门在数据库中设置。在这些情况下,您可以将该字段标记为主要(在数据库中),并且它应该可以工作。否则,你可能不得不添加一个主键列来给LINQ一些东西来唯一标识每一行。

0

如果右键单击设计器中的表格并选择属性,则删除,插入和更新将变灰。我不确定你是否可以提供备用的删除,插入和更新方法...

但是,如果你的问题是关于插入,更新和删除表中的值,一旦你将一个表拖到你的dbml设计器上,在代码中使用linq插入,更新和删除。没有什么需要做的dbml。

0

不修改数据库,你也可以解决这个问题。在DBML文件中设置主键,它会正常工作。 LINQ只需要知道事实上的关键。您也可以将多个列设置为键。

LINQ很棒!

相关问题