Как создать методы CRUD универсального объекта доступа к данным (DAO) с помощью LINQ to SQL

Я новичок в LINQ to SQL и пытаюсь создать общий объект доступа к данным (DAO) для основных методов создания, чтения, обновления и уничтожения (CRUD), чтобы я мог повторно использовать код. Мне удалось создать универсальный метод, который удалит любую сущность с помощью приведенного ниже кода, но мне было интересно, знает ли кто-нибудь, как создать универсальный метод, который будет выбирать любую сущность по общему полю Id, которое существует во всех таблицах.

    /// <summary>
    /// Generic method that deletes an entity of any type using LINQ
    /// </summary>
    /// <param name="entity"></param>
    /// <returns>bool indicating whether or not operation was successful</returns>
    public bool deleteEntity(Object entity)
    {
        try
        {
            DomainClassesDataContext db = new DomainClassesDataContext();
            db.GetTable(entity.GetType()).Attach(entity);
            db.GetTable(entity.GetType()).DeleteOnSubmit(entity);
            db.SubmitChanges();
            return true;
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.StackTrace);
            return false;
        }
    }

Я почти уверен, что тот же шаблон будет работать для обновления и вставки, и хотел бы иметь общий метод в GenericDAO, который будет извлекать мне любую сущность (например, Клиент, Счет-фактуру, WorkOrder и т. Д.) На основе сущности Id. Заранее благодарим за ответы.

11
задан Mahmoud Gamal 7 January 2012 в 09:10
поделиться