首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PLINQO / LINQ-To-SQL生成的实体自保存方法?

PLINQO / LINQ-To-SQL生成的实体自保存方法?
EN

Stack Overflow用户
提问于 2010-09-08 01:20:40
回答 2查看 446关注 0票数 0

您好,我正在尝试创建一个基本的数据模型/层

我们的想法是:

任务Task = TaskRepository.GetTask(2);

task.Description =“任务已更改”;

task.Save();

这个是可能的吗?我试过下面的代码

注意: TaskRepository.GetTask()方法分离任务实体。

我希望它能工作,你知道为什么它不能工作吗?

谢谢

代码语言:javascript
复制
    public partial class Task
    {
        // Place custom code here.

        public void Save()
        {
            using (TinyTaskDataContext db = new TinyTaskDataContext { Log = Console.Out })
            {
                db.Task.Attach(this);


                db.SubmitChanges();
            }
        }


        #region Metadata
        // For more information about how to use the metadata class visit:
        // http://www.plinqo.com/metadata.ashx
        [CodeSmith.Data.Audit.Audit]
        internal class Metadata
        {
             // WARNING: Only attributes inside of this class will be preserved.

            public int TaskId { get; set; }

            [Required]
            public string Name { get; set; }

            [Now(EntityState.New)]
            [CodeSmith.Data.Audit.NotAudited]
            public System.DateTime DateCreated { get; set; }

        }

        #endregion
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-08 15:30:47

在做了一些阅读之后,我意识到我错误地实现了Repository模式。出于约定的原因,我应该将Save方法添加到存储库。

然而,我在提交断开连接的数据集时遇到的实际问题是由于乐观并发。datacontext的工作是跟踪其实体的状态。当实体断开连接时,您将失去该状态。

我发现您需要向数据库表添加一个时间戳字段,或者我可以在我的dbml文件中的每一列上设置UpdateCheck字段。

以下是有关UpdateCheck的一些信息

有关断开连接的Linq和plinqo的一些有用链接

Great info on implementing the Repository pattern with LINQ

Short tutorial for implementing for updating and reattaching entities

Previously answer question

Rick Strahl on LINQ to SQL and attaching Entities

票数 1
EN

Stack Overflow用户

发布于 2010-09-08 09:36:14

不需要此行(Task task = new Task();)。上面的方法应该可以工作,尽管我从来没有见过它以这种方式实现。您是否考虑过使用管理器?你遇到什么运行时错误了吗?

谢谢-Blake Niemyjski

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

https://stackoverflow.com/questions/3661021

复制
相关文章

相似问题

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