LINQ to SQl, Самостоятельная ссылка на расширенный класс - PullRequest
0 голосов
/ 09 сентября 2009

У меня есть класс "Literal", который определяет текстовое значение и идентификатор. Я хочу создать статический метод, который будет просто «FromValue (string)» внутри класса Literal (LINQ to SQL), чтобы он возвращал правильный экземпляр Literal из заданного значения.

У меня возникли проблемы с выяснением, как это сделать. Я имею в виду, что я могу вызывать его в коде каждый раз, когда мне это нужно, но было бы гораздо удобнее и сэкономить время, просто заключив его в класс.

Есть идеи?

using System;
using System.Linq;

namespace Context
{
    public partial class Literal
    {
        public static Literal FromValue(string value)
        {
            // linq code, how do I reference the existing data context?
            return null;
        }
    }
}

Ответы [ 2 ]

1 голос
/ 09 сентября 2009

Что такое "существующий контекст данных"? В точке вызова FromValue может существовать более одного контекста данных, например ::

using (FooDataContext ctx1 = new FooDataContext())
using (FooDataContext ctx2 = new FooDataContext())
{
    Literal.FromValue(...); // which one?
}

Вам нужно будет передать его как параметр, лучшего способа нет.

Также обратите внимание, что вы не сможете использовать FromLiteral в своих запросах LINQ2SQL (поскольку анализатор запросов и переводчик понятия не имеют, что он делает).

0 голосов
/ 09 сентября 2009

Хорошо, «FromLiteral» - это то, что я использую, чтобы назначить его ключу, к которому он прикреплен. Вот так ...

unit.Ring.Keys.Add(new Key(Literal.FromValue("Name",database), item[0]));

Где «база данных» - это экземпляр текста данных. Я просто хотел посмотреть, есть ли лучший способ сделать это. Я хочу назначить их по строковому значению, видите ли, я не знаю идентификатор как должный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...