标签: model

MVC模型对象,域对象和DTO之间有什么区别

MVC模型对象,域对象和DTO之间有什么区别?

我的理解是:

MVC模型对象:

为相应视图显示的数据建模.它可能不直接映射到域对象,即可能包括来自一个或多个域对象的数据.

  1. 客户端
  2. 可能包含业务逻辑.例如.验证,计算属性等
  3. 没有持久性相关的方法

域对象:

用于对问题域中的现实世界对象进行建模的对象,如预留,客户,订单等.用于保存数据.

  1. 服务器端
  2. 没有业务逻辑

DTO(数据传输对象):

当层处于单独的进程中时,用于在层之间传输数据的对象,例如从DB到客户端应用程序.在获取与多个域对象相对应的数据时,允许跨线的单个事务而不是多个调用.DTO仅包含数据和访问器方法,并且不存在逻辑.该数据用于特定的DB事务,因此它可以或可以不直接映射到域对象,因为它可以包括来自一个或多个域对象的数据.

  1. 在层之间传递时,在服务器端和客户端使用
  2. 没有业务逻辑
  3. 没有持久性相关的方法

所以,问题:

  1. 以上理解是否正确?我错过了一些关键点吗?

  2. 是否有任何理由不使用Domain对象作为MVC模型,假设Model对象不需要额外的业务逻辑?

  3. 是否有任何理由不使用DTO作为MVC模型,假设Model对象不需要额外的业务逻辑?

architecture model-view-controller model dto

62
推荐指数
6
解决办法
2万
查看次数

R中模型矩阵中因子的所有级别

我有一个data.frame数字和因子变量组成,如下所示.

testFrame <- data.frame(First=sample(1:10, 20, replace=T),
           Second=sample(1:20, 20, replace=T), Third=sample(1:10, 20, replace=T),
           Fourth=rep(c("Alice","Bob","Charlie","David"), 5),
           Fifth=rep(c("Edward","Frank","Georgia","Hank","Isaac"),4))
Run Code Online (Sandbox Code Playgroud)

我想构建一个matrix为该因子分配虚拟变量并单独保留数值变量.

model.matrix(~ First + Second + Third + Fourth + Fifth, data=testFrame)
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,在运行时会将lm每个因子的一个级别作为参考级别.但是,我想为matrix所有因素的每个级别构建一个带有虚拟/指示变量的变量.我正在建立这个矩阵,glmnet所以我不担心多重共线性.

有没有办法model.matrix为每个级别的因子创建假人?

model r matrix indicator

62
推荐指数
4
解决办法
5万
查看次数

我应该制作一个DateRange对象吗?

我的一些域对象包含日期范围作为一对开始和结束日期属性:

public class Period {
  public DateTime EffectiveDate { get; set; }
  public DateTime ThroughDate { get; set; }
}

public class Timeline {
  public DateTime StartDate { get; set; }
  public DateTime EndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我发现自己有很多这样的事情:

abstract public int Foo(DateTime startDate, DateTime endDate);
abstract public decimal Bar(DateTime startDate, DateTime endDate);
abstract public ICollection<C5.Rec<DateTime, DateTime>> FooBar(DateTime startDate, DateTime endDate);
Run Code Online (Sandbox Code Playgroud)

最后一个让我想知道......我应该实现一个DateRange类吗?我不知道BCL中有一个.

根据我的经验,使对象层次结构更深入往往使事情复杂化.这些对象确实被发送到ReportViewer控件显示的RDLC报告,但这是次要的.我会将视图弯曲到模型而不是相反.但是,我们并不依赖于属性名称,并愿意与以下内容妥协:

public class DateRange {
  public DateTime StartDate { get; set; }
  public DateTime EndDate { get; …
Run Code Online (Sandbox Code Playgroud)

.net tuples model date-range

61
推荐指数
3
解决办法
2万
查看次数

如何知道模型是否是新的?

class Post < ActiveRecord::Base
end

post = Post.new
Run Code Online (Sandbox Code Playgroud)

如何判断'post'是否是一个未从数据库中提取的新模型?

ruby model ruby-on-rails

61
推荐指数
3
解决办法
2万
查看次数

Django与其他领域的许多关系

我想在其中存储一些额外的信息,自动创建,ManyToMany join-table.我怎么在Django那样做?

在我的情况下,我有两个表:"员工"和"项目".我想要存储的是每个员工每个项目每小时工作收到多少,因为这些值不相同.那么,我该怎么做?

我遇到的是,而不是方法"ManyToManyField",显式创建第三个类/表来存储这些新信息,并使用"ForeignKey"方法设置与"Employees"和"Projects"的关系.我很确定它会起作用,但这是最好的方法吗?

database django many-to-many model

61
推荐指数
1
解决办法
3万
查看次数

任何大于0的正则表达式?

将验证应用于MVC中的模型,并希望使用Regex进行验证.

希望验证我的模型上的ID在提交时大于0.

regex model asp.net-mvc-3

61
推荐指数
4
解决办法
14万
查看次数

Django Queryset过滤反向外键

我有以下Django模型:

class Make:
   name = models.CharField(max_length=200)

class MakeContent:
   make = models.ForeignKey(Make)
   published = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以(不直接编写SQL)生成一个包含所有Makes和每个相关MakeContents的查询集published = True.

django model filter django-queryset

58
推荐指数
4
解决办法
5万
查看次数

Rails具有动态条件

我想要的是创建一个模型,以动态的方式使用has_many关联与另一个连接,没有像这样的外键:

has_many :faixas_aliquotas, :class_name => 'Fiscal::FaixaAliquota',
            :conditions => ["regra_fiscal = ?", ( lambda { return self.regra_fiscal } ) ]
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

: SELECT * FROM "fis_faixa_aliquota" WHERE ("fis_faixa_aliquota".situacao_fiscal_id = 1
AND (regra_fiscal = E'--- !ruby/object:Proc {}'))
Run Code Online (Sandbox Code Playgroud)

这可能吗?

model ruby-on-rails

57
推荐指数
4
解决办法
6万
查看次数

在Django中模型的save方法中引发验证错误

我不确定如何在模型的保存方法中正确引发验证错误,并向用户发回明确的消息.

基本上我想知道"if"的每个部分应该如何结束,我想要引发错误的部分和它实际保存的部分:

def save(self, *args, **kwargs):
    if not good_enough_to_be_saved:
        raise ValidationError
    else:
        super(Model, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

然后我想知道该怎么做才能发送一个验证错误,该错误确切地告诉用户错误就像Django自动返回的那样,例如,如果某个值不唯一.我正在使用(ModelForm)并从模型中调整所有内容.

django validation model validationerror

56
推荐指数
3
解决办法
5万
查看次数

Django获取应用程序中的模型列表

所以,我在MyApp文件夹中有一个models.py文件:

from django.db import models
class Model_One(models.Model):
    ...
class Model_Two(models.Model):
    ...
...
Run Code Online (Sandbox Code Playgroud)

它可以是大约10-15个班级. 如何找到MyApp中的所有模型并获取其名称?

由于模型不可迭代,我不知道这是否可行.

python django model

55
推荐指数
4
解决办法
3万
查看次数