C# 使用setter处理数据库
在项目中,我有一个类-model类(称这个类为-C# 使用setter处理数据库,c#,C#,在项目中,我有一个类-model类(称这个类为-modelClass) 我有一个类(称这个类为-dbClass),它提供了一些使用数据库的方法(db-Advantage数据库体系结构)。此类提供了使用数据库的静态方法。我知道我可以使用一些ORM(比如EF)、repository模式,但在这个项目中,使用数据库的主要思想是使用静态方法的静态类 在modelClass中,我有一个字段-“状态””(字符串类型) 我的用例是在设置字段“状态””时更新数据库中的记录 您可以在下面看到我的解决方案: pub
modelClass
)
我有一个类(称这个类为-dbClass
),它提供了一些使用数据库的方法(db-Advantage数据库体系结构)。此类提供了使用数据库的静态方法。我知道我可以使用一些ORM(比如EF)、repository模式,但在这个项目中,使用数据库的主要思想是使用静态方法的静态类
在modelClass中,我有一个字段-“状态”
”(字符串类型)
我的用例是在设置字段“状态”
”时更新数据库中的记录
您可以在下面看到我的解决方案:
public class modelClass{
//here some fileds
public string Status { get; set; }
//here some fileds
}
public class dbClass{
//here some fileds and method for work with database
public static void update(modelClass mClass){
//here update the record in database
}
}
使用
我想出了另一个解决办法
我决定使用关键字“set
”
让我解释一下我的想法——当我在modelClass中设置字段时,我想在数据库中设置字段并更新记录
例如:
public class modelClass{
//here some fileds
private string Status { get; set; }
//create public setter
public string setStatus{
get { return Status; }
set
{
Status = value;
dbClass.update(this);
}
}
//here some fileds
}
使用
主要问题是:
不,这不是个好习惯 原因有二:
此外,它还有一个“save”方法,这样您可以在完成字段赋值后,在对数据库的一次调用中刷新值。不,这不是一个好的做法 原因有二:
此外,它还有一个“save”方法,这样您可以在完成字段赋值后,在对数据库的一次调用中刷新值。不,这不是一个好的做法 原因有二:
此外,它还有一个“save”方法,这样您可以在完成字段赋值后,在对数据库的一次调用中刷新值。不,这不是一个好的做法 原因有二:
此外,它还有一个“save”方法,这样您可以在完成字段分配后,在一次对数据库的调用中刷新值。因此您试图区分以某种方式映射到数据库的类和业务逻辑使用的类。我认为这是个好主意。 您正在考虑在域驱动设计中也会发现的元素,其中域“不知道持久性”,即不知道如何、在何处或以何种形式持久化 然而,我认为有更优雅的方法来实现它。通过将dbclass“包装”到模型类中,您可以创建一个从模型到数据库的依赖关系,而这正是您试图避免的事情 我看到使用的是模型类,以及这些模型类的I假设。存储库的实现是了解持久性介质的实现。可能是EF对抗SQL server,也可能是Azure 在更新的情况下,此repo将从数据库中删除dbclass,然后从提供的modelclass(您所称的)中更新属性。例如,您可以使用来处理此映射。如果您的所有属性都具有相同的名称和类型,那么它只是一行:
OrderDto dto = Mapper.Map<OrderDto>(order);
OrderDto-dto=Mapper.Map(order);
因此,您试图区分以某种方式映射到数据库的类和业务逻辑使用的类。我认为这是个好主意。
您正在考虑在域驱动设计中也会发现的元素,其中域“不知道持久性”,即不知道如何、在何处或以何种形式持久化
然而,我认为有更优雅的方法来实现它。通过将dbclass“包装”到模型类中,您可以创建一个从模型到数据库的依赖关系,而这正是您试图避免的事情
我看到使用的是模型类,以及这些模型类的I假设。存储库的实现是了解持久性介质的实现。可能是EF对抗SQL server,也可能是Azure
在更新的情况下,此repo将从数据库中删除dbclass,然后从提供的modelclass(您所称的)中更新属性。例如,您可以使用来处理此映射。如果您的所有属性都具有相同的名称和类型,那么它只是一行:
OrderDto dto = Mapper.Map<OrderDto>(order);
OrderDto-dto=Mapper.Map(order);
因此,您试图区分以某种方式映射到数据库的类和业务逻辑使用的类。我认为这是个好主意。
您正在考虑在域驱动设计中也会发现的元素,其中域“不知道持久性”,即不知道如何、在何处或以何种形式持久化
然而,我认为有更优雅的方法来实现它。通过将dbclass“包装”到模型类中,您可以创建一个从模型到数据库的依赖关系,而这正是您试图避免的事情
我所看到的被使用的是
OrderDto dto = Mapper.Map<OrderDto>(order);