Linq错误:不包含“InsertOnSubmit”的定义。

3
我有以下代码:

我有以下代码:

   public static bool Update(UserExtendedData data, byte[] image)
        {

            data.UserId = getUserId_new();

            IQueryable<UserExtendedData> entry = m_model.UserExtendedDataSet.Where(x => x.UserId == getUserId_new());
            UserExtendedData User = entry.Single();
            User.firstName = data.firstName;
            User.lastName = data.lastName;
            User.phoneNo = data.phoneNo;
            User.creditCardNo = data.creditCardNo;
            User.dateOfBirth = data.dateOfBirth;
            User.UserId = getUserId_new();

            if (image != null)
            {
                User.avatarArt = image;
            }
            m_model.UserExtendedDataSet.InsertOnSubmit(data);

            return true;
        }

我已经包含了使用System.Data.Linq; 我在Windows 7 (x64)上使用asp.net 4.5,还包括:

 <compilation debug="true" targetFramework="4.5">

但我仍然遇到错误:
does not contain a definition for 'InsertOnSubmit' and no extension method 'InsertOnSubmit' accepting a first argument of type ' could be found (are you missing a using directive or an assembly reference?) 

但是奇怪的是,我没有以下问题:

public static bool Insert(UserExtendedData data, byte[] image)
        {

            data.UserId = getUserId_new();

                if (image != null)
                    data.avatarArt = image;

                m_model.UserExtendedDataSet.Add(data) ;
                m_model.SaveChanges();
                return true;
        }

您有没有任何想法是什么原因导致了这个问题?我真的很感激任何帮助。


你是否正在使用 Namespace: System.Data.Linq - Amit
我只有:using System.Data.Linq; 我有 using namespace 吗? - molu2008
请检查实体数据库应该是dbml文件,而不是dbmx文件。 - Amit
1
你的实体集文件扩展名是什么?如果是dbml,那么它就可以工作,否则就不行。 - Amit
1
您可以删除整行代码 m_model.UserExtendedDataSet.InsertOnSubmit(data);。上下文已经跟踪了 User 并且在调用 SaveChanges 时被保存(更新,而不是插入,正如方法名称所示)。 - Gert Arnold
显示剩余3条评论
1个回答

2

你的实体集文件扩展名是什么? 如果是dbml,那么它会起作用,否则在dbmx情况下不起作用。

参考


不幸的是,这是dbmx,有什么办法可以规避这个障碍吗? - molu2008

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接