首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq SubmitChanges不工作

Linq SubmitChanges不工作
EN

Stack Overflow用户
提问于 2009-01-31 20:36:00
回答 2查看 2.1K关注 0票数 0

我有一些这样的代码:

代码语言:javascript
复制
Function GetTypeFromTableName(ByVal _TableName As String, ByVal _DataContext As DataContext)

            Dim Mytype As Type = (From t In _DataContext.Mapping.GetTables Where t.TableName = "dbo." + _TableName Select t.RowType.Type).SingleOrDefault
            Return Mytype

    End Function

 Dim DBA As New LINQDataContext
_TBLName="City"
 TableType = GetTypeFromTableName(_TBLName, DBA)

                CallByName(obj, "Code", CallType.Set,1)

                Dim Equery = From T In DBA.GetTable(TableType) Select T

                Equery = Equery.Where(Function(Oj1) Oj1 Is obj)

                Dim oopp = From t In Equery Select  CallByName(t, "CName", CallType.Get, Nothing)
                oopp.ToList.Item(0) = Txt_Name.Text
                DBA.SubmitChanges()

SubmitChanges不工作。怎么啦?

EN

回答 2

Stack Overflow用户

发布于 2009-01-31 21:04:32

在我看来,您正在选择一个匿名类型列表,然后更改匿名类型列表中的值,而不是表中匹配的对象中的值。因为您还没有更新表对象本身,所以SubmitChanges没有任何事情可做。

尝试将其更改为以下内容

代码语言:javascript
复制
  Dim matchingObj = Equery.Where( Function(Oj1) Oj1 Is obj )
                          .SingleOrDefault();

然后设置属性值。

代码语言:javascript
复制
  CallByName( matchingObj, "CName", CallType.Set, Txt_Name.Text );

然后提交您的更改。

注意:我读过VB,但我写得不是很好。您可能需要修改我的语法。在尝试设置其属性之前,您可能还希望确保存在匹配的对象。

票数 2
EN

Stack Overflow用户

发布于 2009-06-09 19:58:39

这是旧的,但我想我会来把它弄清楚。

每当更新或提交更改失败时,尝试在InsertOnSubmit()语句中输入puttin。该语句将给出详细的错误信息。

在我的例子中,我有非常简单的代码。

代码语言:javascript
复制
        var single = dataContext.MySysTables.FirstOrDefault();
        single.DispatchIdIndex ++;
        single.ModifyDate = DateTime.Now;
        dataContext.SubmitChanges();

这是没有更新的。当我放入一个InsertOnSubmit(单个)行时,它给了我错误“数据不能被插入,因为表没有主键”。这是我的测试表,我没有主键。一旦我添加了一个新的列,并创建了一个主键,那么一切都很好。

和平

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/499507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档