Всем привет,
Понимаю что Code First еще не планируется, но я видел что кто-то пробовал создавать таблицы на основе метаинформации.
Никак не могу найти этот код. Может кто-то поделится?
Спасибо
|
В твиттер-канале ответа за месяц не дождался, спрошу здесь.
В ридми сказано:
a LEFT JOIN query like this:
from p in db.Product
from c in db.Category.Where(q => q.CategoryID == p.CategoryID).DefaultIfEmpty()
select new Product
{
Name =
... [More]
p.Name,
Category = c
};
а поддерживается ли лефт-джойн такой, как он описан в MSDN:
var query =
from person in people
join pet in pets on person equals pet.Owner into gj
from subpet in gj.DefaultIfEmpty()
select new { person.FirstName, PetName = (subpet == null ? String.Empty : subpet.Name) };
?
Будет ли поддержка геометрических/географических, то есть spatial, типов данных? [Less]
|
Здравствуйте.
Занимаюсь расширением поддержки WCF Data Service.
Дописал код поддержки навигационных свойств.
В результате WCF_DS формирует запрос следующего вида:
var query = db.GetTable<RIC.Service.Infrastructure.Model.Departament>()
... [More]
.Where(element => (element.Id == 1))
.Select(p => new System.Data.Services.Internal.ExpandedWrapper<RIC.Service.Infrastructure.Model.Departament, System.Collections.Generic.IEnumerable<RIC.Service.Infrastructure.Model.Departament>>() { ExpandedElement = p, Description = "ChildDepartaments", ReferenceDescription = "", ProjectedProperty0 = p.ChildDepartaments });
Но l2db не может его переварить выбрасывая исключение.
Проект демонстрирующий данную проблему.
Как избавиться от данной ошибки? [Less]
|
Добрый вечер.
Вот такой тривиальный код теста:
private void Go(object start)
{
int s = (int) start;
Random rnd = new Random();
using(var db = new DB())
{
... [More]
for(int i=s; i<s + 5; i++)
{
Console.WriteLine("t_" + i);
db.Insert<WorkModel>(new WorkModel(){
RN = i, Name = "w_" + i.ToString(),
UnitRN = 1, GroupRN = 0, Ord = 0});
Thread.Sleep(rnd.Next(200));
}
}
}
[Test]
public void Test02_multiThread()
{
Thread t1 = new Thread(Go);
t1.Start(1);
t1.Join();
}
Если Go просто вызвать в главном поток, то все работает как надо.
Но стоит его запустить в отдельном потоке и получаем такой Exception:
Unhandled exceptions:
1) Askip.Tests.Test16_db.Test02_multiThread : System.Runtime.Serialization.SerializationException: Не удалось найти сборку "BLToolkit.4, Version=4.1.15.0, Culture=neutral, PublicKeyToken=b1d3f6ab3aadaca3".
в System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
в System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
в System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
в System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
в System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
в System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
в System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
в System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
в System.Runtime.Remoting.Channels.CrossAppDomainSerializer.DeserializeObject(MemoryStream stm)
в System.AppDomain.Deserialize(Byte[] blob)
в System.AppDomain.UnmarshalObject(Byte[] blob)
В чем проблема?
Спасибо. [Less]
|
Игорь, привет
Планируется ли поддержка Mono в linqtodb? Или я что-то пропустил.
Спасибо.
|
Игорь, приветствую!
Есть пожелание от (многих) трудящихся. Можно ли в исходники EditableArrayList BLT добавить пустой конструктор
public EditableArrayList()
: this(typeof(object), new ArrayList(), true)
{
}
Это нужно для
... [More]
WCF/Xml-сериализатора (честно говоря, в других случаях, трудно представить его использование).
ЗЫ. Если проблемы с совместимостью у кого-то могут возникнуть, то решить это через добавление #define константы
EDITABLEARRAYLIST_EMPTY_CTOR и #ifdef...
Где можно было, отнаследовался. Но как-то раз нарвался на internal (точно не скажу где, может и не в EditableArrayList дело было) и после этого решил, что проще каждый раз править исходники BLT. Но это как-то мало соответствует представлениям о красивом и прекрасном
ЗЫ2. Может есть какое-то другое решение, не подскажете, коллеги?
Спасибо! [Less]
|
Здравствуйте,
Как я понимаю, единственный способ осуществления deep copy в BLToolkit — использование класса Map. У меня возникла проблема в случае с классом, на котором навешаны атрибуты MapField (см. коммент в последней строчке):
... [More]
[MapField("SomethingColumnInDB", "MyInnerClass.Something")]
class MyClass
{
public int ID;
public string Name;
public MyInnerClass MyInnerClass;
}
class MyInnerClass
{
public string Something;
}
...
var entity = new MyClass
{
ID = 1,
Name = "Test",
MyInnerClass = new MyInnerClass { Something = "Something" }
};
var mapper = Map.GetObjectMapper<MyClass, MyClass>();
var clone = mapper(entity);
// clone.MyInnerClass is null :(
Как побороть? [Less]
|
можно ли добавить немного логики при генерации модели из Т4.
На данный момент существуют такие проблемы
1. не генереться правильно имена полей в таких случаях
[Column("Pick-up Time"), Nullable] public string Pick-upTime { get;
... [More]
set; } // varchar(50)
[Column("Pick-up $"), Nullable] public string Pick-up$ { get; set; } // varchar(50)
[Column("Mileage $"), Nullable] public string Mileage$ { get; set; } // varchar(50)
[Column("TOTAL $$"), Nullable] public string TOTAL$$ { get; set; } // varchar(50)
2. не проверяется случай когда имя свойства совпадает с именем класса
public partial class CommentType
{
[PrimaryKey, Identity ] public int CommentTypeID { get; set; } // int
[Column, NotNull ] public string CommentType { get; set; } // varchar(50)
[Column, Nullable] public string CreatedBy { get; set; } // varchar(50)
Спасибо [Less]
|
https://nuget.org/packages?q=linq2db.Oracle
|
Делаю генератор модели данных для Oracle и возникло пару вопросов, связанных с OWNER.
1. Есть ли какой-нибудь дефолтный OWNER в Oracle? Можно ли его как-то получить из OracleDataConnection?
2. Для каких OWNERs генерировать схему данных? Для всех
... [More]
, для текущего?
3. Для каких не генерировать?
4. Генерировать ли OWNER в модели данных? Всегда? Для текущего OWNER?
Какая вообще общепринятая практика использования OWNER в Oracle?... << RSDN@Home 1.2.0 alpha 5 rev. 69>> [Less]
|