标签: object-persistence

我对对象持久性库的想法有用吗?

首先,如果这不是一个提出这个问题的合适场所,我很抱歉,但我不确定从哪里获得输入.

我已经创建了.NET对象持久性库的早期版本.它的特点是:

  • 一个非常简单的POCO持久性接口.
  • 主要的是:支持几乎所有可以想象的存储介质.这将是从本地文件系统上的纯文本文件到SQLite等嵌入式系统,任何标准SQL服务器(MySQL,postgres,Oracle,SQL Server等)到各种NoSQL数据库(Mongo,Couch,Redis等)的一切.驱动程序几乎可以编写任何东西,因此,例如,您可以非常轻松地编写驱动程序,其中实际的后备存储可以是Web服务.

当我第一次有这个想法时,我确信它非常棒.我很快创建了一个初始原型.现在,我正在讨论连接池,线程安全以及是否尝试支持LINQ等IQueryable等问题的"困难部分".我正在更加努力地看看是否值得开发这个库超出了我自己的要求.


这是一个基本的使用示例:

var to1 = new TestObject { id = "fignewton", number = 100, FruitType = FruitType.Apple };

ObjectStore db = new SQLiteObjectStore("d:/objstore.sqlite");
db.Write(to1);
var readback = db.Read<TestObject>("fignewton");

var readmultiple = db.ReadObjects<TestObject>(collectionOfKeys);
Run Code Online (Sandbox Code Playgroud)

现在可以使用的查询界面如下所示:

var appleQuery = new Query<TestObject>().Eq("FruitType", FruitType.Apple).Gt("number",50);
var results = db.Find<TestObject>(appleQuery); 
Run Code Online (Sandbox Code Playgroud)

我还在研究另一种查询接口,它允许您传递非常类似于SQL WHERE子句的内容.很明显,在.NET世界中支持IQueryable /表达式树会很棒.

由于该库支持许多具有不同功能的存储介质,因此它使用属性来帮助系统充分利用每个驱动程序.

[TableName("AttributeTest")]
[CompositeIndex("AutoProperty","CreatedOn")]
public class ComplexTypesObject
{
    [Id]
    public string id;

    [QueryableIndexed]
    public FruitType FruitType;

    public SimpleTypesObject EmbeddedObject;
    public string[] Array;
    public int AutoProperty { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# object-persistence nosql

6
推荐指数
1
解决办法
347
查看次数

Javascript:保留窗口对象引用?

我的 javascript 代码打开一些窗口槽:

var win = window.open();
Run Code Online (Sandbox Code Playgroud)

我将 win 引用与所有其他打开的窗口一起存储在一个数组中。
一切正常,直到开启器刷新为止。

所以我想要实现的是在加载“主”窗口时取回对打开的窗口的所有引用。

为了实现这一点,我必须:
1. 保留卸载时的所有引用 2. 取回加载时的引用 3. 使用新的 opener 更新引用

是否可以?如果是这样怎么办?

javascript window object-persistence

6
推荐指数
2
解决办法
7214
查看次数

是否可以在C#中创建有状态的Web服务?

我现在有这样的事情:

public class Service1 : System.Web.Services.WebService
{
    [WebMethod]
    public string Method1()
    {
        SomeObj so = SomeClass.GetSomeObj(); //this executes very long time, 50s and more
        return so.Method1(); //this exetus in a moment 
    }

    [WebMethod]
    public string Method2()
    {
        SomeObj so = SomeClass.GetSomeObj(); //this executes very long time, 50s and more
        return so.Method2(); //this exetus in a moment 
    }

 ...
}
Run Code Online (Sandbox Code Playgroud)

有可能创建有状态的Web服务,以便我可以重用SomeObj so并只调用同一对象上的方法吗?

因此,将使用此服务的客户端将首先调用web方法,该方法将创建so对象并返回一些ID.然后在后续调用中,Web服务将so基于ID 重用相同的对象.

编辑


这是我的实际代码:

[WebMethod]
public List<ProcInfo> GetProcessList(string domain, string machineName)
{
    string …
Run Code Online (Sandbox Code Playgroud)

c# persistence web-services stateful object-persistence

6
推荐指数
1
解决办法
3143
查看次数

如何在doctrine 2.1中发布持久化/更新操作,包括重新保存到数据库?

使用doctrine 2.1(以及zend框架1.11,而不是它对这个问题很重要),如何发布持久化和发布更新操作,包括重新保存到数据库?

例如,根据刚生成的主键'id创建唯一令牌,或为上传的图像生成缩略图(实际上不需要重新保存到数据库,但仍然)?


编辑 - 让我们解释一下,好吗?

以上实际上是关于两种情况的问题.两种情况都与以下状态有关:

假设我有一个User实体.当对象在被标记为持久化后被刷新时,它将具有正常的自动生成的mysql id - 意味着正常运行的数字通常从1,2,3等开始.
每个用户都可以上传图像 -他将能够在应用程序中使用 - 它也将在数据库中有记录.所以我有另一个实体叫做Image.每个Image实体还具有自动生成的ID - 与用户ID相同的方法.

现在 - 这是场景:

  1. 当用户上传图像时,我想在将图像保存到数据库后立即生成该图像的缩略图.这应该发生在每个新的或更新的图像上.
    由于我们试图保持智能,我不希望代码生成缩略图,如下所示:

    $ image = new Image();
    ...
    $ entityManager-> persist($ image);
    $ entityManager->冲洗();
    callToFunctionThatGeneratesThumbnailOnImage($图像);

    但是我希望它在对象的持久化上自动发生(好吧,持久化对象的刷新),就像prePersist或者preUpdate方法一样.

  2. 由于用户上传了图像,因此他获得了一个图像链接.它可能看起来像:http://www.mysite.com/showImage?id=[IMAGEID].
    这允许任何人只需更改此链接中的imageid,并查看其他用户的图像.
    所以为了防止这样的事情,我想为每个图像生成一个唯一的标记.因为它实际上并不需要复杂,我想到了使用图像id的md5值和一些盐.
    但为此,我需要拥有该图像的ID - 我只有在刷新持久化对象后才会生成 - 然后生成md5,然后再将其保存到数据库中.

了解图像的链接应该是可公开访问的,因此我不能只允许经过身份验证的用户通过某种权限规则查看它们.

object-persistence doctrine-orm

6
推荐指数
2
解决办法
4983
查看次数

会话对象中的经典ASP Store对象

我是经典ASP的新手,我需要在经典的asp中编写一个Web应用程序,因为客户希望它是经典的asp.:(

无论如何!这是我的问题:

当我有一个名为person的类的对象时:

Class Person
 Private m_sFirstName

 Public Property Get firstName
 firstName = m_sFirstName
 End Property

 Public Property Let firstName(value)
   m_sFirstName = value
 End Property

End Class


set aPerson = new Person
Person.firstName = "Danny"

set Session("somePerson") = aPerson
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好...

在下一个请求中,我尝试读取会话var,如:

If IsObject(Session("aPerson")) = true Then
    set mySessionPerson = Session("aPerson")

      Response.Write(TypeName(myTest)) // will output "Person" 
      Response.Write(mySessionPerson.firstName) // will output "Object doesn't support this property or method: 'mySessionPerson.firstName'
End If
Run Code Online (Sandbox Code Playgroud)

关于什么事情的任何想法都会有很大的帮助.

session object-persistence asp-classic

5
推荐指数
2
解决办法
1万
查看次数

DTOs与序列化持久化实体

我很想知道社区对这个问题的看法.我最近遇到了NHibernate/WCF场景(实体在服务层持久存在)的问题,并意识到我可能在这里走错了方向.

我的问题很明显,当在Web服务(在这种情况下为WCF)后面使用持久对象图(NHibernate,LINQ to SQL等)时,您更喜欢通过网络发送这些实体吗?或者你会创建一组较轻的DTO(没有循环引用)?

c# web-services dto object-persistence

5
推荐指数
1
解决办法
2097
查看次数

ORM和持久性框架之间有什么区别?

我正在阅读OOP设计模式和框架设计,发现自己对术语ORMPersistence framework之间的区别不太了解。ORM是PF的一种吗?您可以期望这两种功能有哪些不同?

orm object-persistence

5
推荐指数
1
解决办法
6099
查看次数

Python:使用函数参数持久记忆函数的策略?

我写了一个小课程来持续记住一些昂贵的函数,这些函数对随机网络进行各种统计分析.

这些都是纯粹的功能; 所有数据都是不可变的.但是,某些函数将函数作为参数.

基于这些参数创建密钥是一个小问题,因为在Python中,函数对象相等等同于函数对象标识,即使函数实现没有改变,它也不会在会话之间保持不变.

我暂时使用函数名作为字符串来解决这个问题,但是当我开始考虑更改函数或匿名函数的实现等时,这会引发自己的一大堆问题.但我可能不是第一个担心这类事情的人.

有没有人有任何策略在Python中持久记忆函数参数的函数?

python functional-programming memoization object-persistence

5
推荐指数
1
解决办法
321
查看次数

嵌入式表单的持久性

我正在尝试使用指南设置一些嵌入式表单.我在我的应用程序,课程和评估中设置了两个模型.

每个课程都可以有多个评估.

我有一个表单设置,用户可以在该课程中创建课程以及他们想要的任意数量的评估.提交表单时,它会成功创建课程记录和所有评估记录,但是创建的评估记录未链接到父课程(lesson_id字段只留空).

有人可以帮忙吗?

任何建议表示赞赏

谢谢.

我的Model类设置如下:

评价:

class Evaluation
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="Lesson", inversedBy="evaluations")
     * @ORM\JoinColumn(name="lesson_id", referencedColumnName="id")
     */
    protected $lesson;

/**
     * Set lesson
     *
     * @param \LessonBundle\Entity\Lesson $lesson
     * @return Evaluation
     */
    public function setLesson(\LessonBundle\Entity\Lesson $lesson = null)
    {
        $this->lesson = $lesson;

        return $this;
    }

    /**
     * Get lesson
     *
     * @return \LessonBundle\Entity\Lesson 
     */
    public function getLesson()
    {
        return $this->lesson;
    } …
Run Code Online (Sandbox Code Playgroud)

forms object-persistence symfony doctrine-orm

5
推荐指数
1
解决办法
3825
查看次数

数据库中 node.js 对象的自动持久化

在尝试使用 node.js 对象(数组、映射...)进行一些数据索引时,每次启动脚本时都需要一些时间来填充(从数据库数据),我希望我的 node.js 对象可以自动透明地持久化在我的数据库中。

使用 node.js 中的 MongoDB 以及其他数据库(包括基于 SQL 的)已经有一段时间了,我很清楚 javascript 对象(同步访问,无查询)和数据库记录之间的查询/更新机制非常不同(异步访问,查询,...)。但是,我仍然希望使 javascript var persisted的解决方案,至少对于索引而言,可以存在并有所帮助。

基本上,我在考虑类似 HTML5 的 LocalStorage 之类的东西,但用于 node.js 服务器。

你认为这个想法有趣、可行,或者它已经存在?

编辑:正在进行中:https : //github.com/adrienjoly/persistent-harmony

javascript database persistence object-persistence node.js

5
推荐指数
1
解决办法
4264
查看次数