Hi,
I have a small patch to implement {what the subject says}, which
is somehow used in my ASP.NET DynamicData sample.
I'm not sure if it is what DBLinq exactly wants, but here is
what I tried against .NET (pass 0 to 2 arguments):
----
using System;
using System.Collections.Generic;
using System.Data.Linq;
public class Test {
public static void Main (string [] args)
{
var er = new EntityRef<Foo> (Array.ConvertAll<string,Foo> (
args, s => new Foo (s)));
Console.WriteLine (er.HasLoadedOrAssignedValue);
Console.WriteLine (er.Entity);
}
}
public class Foo {
public Foo (string s)
{
S = s;
}
public string S;
public override string ToString ()
{
return "<" + S + ">";
}
}
----
Atsushi Eno
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"DbLinq" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/dblinq?hl=en
-~----------~----~----~----~------~----~------~--~---
Index: src/DbLinq/Data/Linq/EntityRef.cs
===================================================================
--- src/DbLinq/Data/Linq/EntityRef.cs (revision 115081)
+++ src/DbLinq/Data/Linq/EntityRef.cs (working copy)
@@ -42,9 +42,11 @@
{
private TEntity entity;
private bool hasLoadedOrAssignedValue;
+ private IEnumerable<TEntity> source;
public EntityRef(TEntity entity)
{
+ this.source = null;
this.entity = entity;
hasLoadedOrAssignedValue = true;
}
@@ -52,11 +54,14 @@
[DbLinqToDo]
public EntityRef(IEnumerable<TEntity> source)
{
- throw new NotImplementedException();
+ this.source = source;
+ hasLoadedOrAssignedValue = false;
+ entity = null;
}
public EntityRef(EntityRef<TEntity> entityRef)
{
+ this.source = null;
this.entity = entityRef.Entity;
hasLoadedOrAssignedValue = true;
}
@@ -65,6 +70,14 @@
{
get
{
+ if (source != null) {
+ foreach (var s in source) {
+ if (entity != null)
+ throw new InvalidOperationException ("Sequence
contains more than one element");
+ entity = null;
+ }
+ source = null;
+ }
return entity;
}
set