Linq to sql PLINQO/LINQ到SQL生成的实体自保存方法?

Linq to sql PLINQO/LINQ到SQL生成的实体自保存方法?,linq-to-sql,plinqo,Linq To Sql,Plinqo,嗨,我正在尝试创建一个基本的数据模型/层 我们的想法是: Task=TaskRepository.GetTask(2) task.Description=“任务已更改” task.Save() 这可能吗?我试过下面的代码 注意:TaskRepository.GetTask()方法分离任务实体 我希望这能奏效,你知道为什么不行吗 谢谢 public partial class Task { // Place custom code here. pu

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

我们的想法是:

Task=TaskRepository.GetTask(2)

task.Description=“任务已更改”

task.Save()

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

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

我希望这能奏效,你知道为什么不行吗

谢谢

    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
    }

不需要此行(Task=newtask();)。尽管我从未见过它以这种方式实现,但上面的方法应该是有效的。你考虑过使用经理吗?您是否遇到任何运行时错误

谢谢
-Blake Niemyjski

读了一些书后,我意识到我错误地实现了存储库模式。出于惯例的考虑,我应该将Save方法添加到存储库中

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

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

这里是一些关于

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


对不起,我的错误,我应该删除任务Task=new Task();我希望以一种不连贯的方式工作。从我所看到的情况来看,管理者是否与上下文有关?…因此实际上我也会遇到同样的问题?我花了一整晚的时间阅读了关于使用存储库模式实现PLINQO的文章。