Вопрос

Я строю свое веб -приложение, чтобы связаться с DB. До сих пор мне удалось справиться с этим (хотя я не строил BLL & DAL).

У меня есть таблица, в которой есть столбец "ID". Я знаю, что есть способ объявить его на SQL Server автоматически. (Но я не хочу этого).

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

У меня есть 2 вопроса:

  1. Как я это объявляю?

  2. где я его создаю и инициалирую? (У меня есть несколько страниц входа).

БЛАГОДАРНОСТЬ!

пса

Было бы полезно, если бы кто -то скажет мне, как мне построить DAL с моими сохраненными процедурами? А для того, что мне нужно, использовать BLL, что я не могу сделать в DAL?

Это было полезно?

Решение

Вы можете использовать Application объект - это часть HttpContext и доступен непосредственно на любой странице.

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

public class Globals
{
  public static int Counter { get; set;}
}

// accessed from other classes:
Globals.Counter++;

Любой подход не будет работать с вами, есть веб -ферма или несколько веб -приложений, и они не выживут.


Независимо от этих вариантов, правильное решение (даже если вы не хотите его использовать - вы можете объяснить, почему?), - использовать поле ID с IDENTITY пункт.

Другие советы

Хранение переменной - это легкая часть. Управление собственным поколением идентификационных идентификаторов и вопросами спора и параллелистики является сложной частью. Удачи.

В ASP.NET действительно нет такой вещи, как глобальная переменная. Помните, http не содержит сохранения состояния.

Самое близкое, что вы можете прийти, - это хранить что -то в объекте приложения:

Application["myvar" ] = x;
x = Application["myvar"];

Но даже здесь эта переменная теряется, когда приложение необходимо перезапустить, что она может время от времени делать.

Гораздо лучшее решение для того, что вы описываете, - это значение базы данных.

Увеличение целого числа, а затем бросить этот увеличенный идентификатор в БД, чреват опасностью. Многопоточный? Что происходит, когда приложение подпрыгивает? Развертывания Dev и Prod имеют один и тот же набор чисел?

Похоже, вам нужен глобально уникальный идентификатор и может быть создан вне базы данных. Это звучит как работа для Guid. Конечно, это занимает больше места в БД, но, вероятно, это не самое худшее, что вы собираетесь сделать с базой данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top