Herramientas de usuario

Herramientas del sitio


db:db4o

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
db:db4o [2010/02/21 18:55]
alfred
db:db4o [2020/05/09 09:25] (actual)
Línea 44: Línea 44:
   * {{db:​db4o:​db4o-6.0.rar|Binarios}}   * {{db:​db4o:​db4o-6.0.rar|Binarios}}
   * {{db:​db4o:​objectmanager-_6.4-java.zip|ObjectManager}}   * {{db:​db4o:​objectmanager-_6.4-java.zip|ObjectManager}}
 +
 +
 +
  
  
Línea 100: Línea 103:
 </​code>​ </​code>​
  
- +=== Notas === 
- +  * Para tipar el resultado: 
- +<code csharp> 
 +var template = new Car () { marca = null }; 
 +var result = db.Get(template).Cast<​Car>​();​ 
 +var first = result.FirstOrDefault();​ 
 +var list = result.ToList();​ 
 +</​code>​
  
 ==== Acciones básicas ==== ==== Acciones básicas ====
Línea 155: Línea 162:
     db.Delete(r);​     db.Delete(r);​
 </​code>​ </​code>​
 +
  
 ==== Acciones avanzadas ==== ==== Acciones avanzadas ====
Línea 162: Línea 170:
 Para coger un objeto a partir de su id haremos: ''​db.Ext().GetByID(id);''​ \\ \\  Para coger un objeto a partir de su id haremos: ''​db.Ext().GetByID(id);''​ \\ \\ 
 Opcionalmente también se pueden generar los UUID (//Unique Universal IDs//), que son identificadores universales para que elementos que se compartan entre diferentes DB. Opcionalmente también se pueden generar los UUID (//Unique Universal IDs//), que son identificadores universales para que elementos que se compartan entre diferentes DB.
 +
 +
 +
 +=== Indexar un campo ===
 +Para crear un índice deberemos de poner la siguiente línia **antes de abrir la base de datos**:
 +<code csharp>
 +Db4oFactory.Configure().ObjectClass(typeof(NombreClase)).ObjectField("​NombreCampo"​).Indexed(true);​
 +</​code>​
 +El campo que queramos indexar **no puede ser un campo autoimplementado**,​ es decir, que sea así:
 +<code csharp>
 +int id { get; set; }
 +</​code>​
 +Sería algo así:
 +<code csharp>
 +class Program
 +{
 +    public int id;
 +    public int name;
 +    static void Main(string[] args)
 +    {
 +        Db4oFactory.Configure().ObjectClass(typeof(Program)).ObjectField("​id"​).Indexed(true);​
 +        var db = Db4oFactory.OpenFile("​c:​\\prueba.db"​);​
 +...
 +</​code>​
 +
 +==== Creación de servidor ====
 +=== Embedded ===
 +Para usar accesos concurrentes desde un mismo ejecutable:
 +<code csharp>
 +IObjectServer server = Db4oFactory.OpenServer(dbPath,​ 0);
 +IObjectContainer client1 = server.OpenClient();​
 +IObjectContainer client2 = server.OpenClient();​
 +// ...
 +client1.Close();​
 +client2.Close();​
 +server.Close();​
 +</​code>​
 +=== En red ===
 +Para que funcione en red, el servidor:
 +<code csharp>
 +public void Start()
 +{
 +    lock (this)
 +    {
 +        IObjectServer server = Db4oFactory.OpenServer("​c:​\\db.db4o",​ 1258);
 +        server.GrantAccess(USER,​ PASSWORD);
 +        Monitor.Wait(this);​
 +    }
 +}
 +</​code>​
 +Y el cliente:
 +<code csharp>
 +IObjectContainer db = Db4oFactory.OpenClient(SERVER_HOST,​ 1258, USER, PASSWORD);
 +</​code>​
db/db4o.1266778559.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)