我有一个CSLA对象正在从数据库返回数据,但是当我更改对象的任何属性时,对象仍然说IsDirty ="false".虽然当我创建一个新对象时,它会报告IsDirty ="true".我确信它只是我的代码中缺少的一些简单的东西.以下是我的目标:
[Serializable()]
[ObjectFactory( FactoryNames.SiteFactoryName )]
public class Site : BusinessBase<Site>
{
#region Business Methods
public static PropertyInfo<int> IdProperty = RegisterProperty<int>( p => p.Id );
public int Id
{
get { return GetProperty( IdProperty ); }
set { LoadProperty( IdProperty, value ); }
}
public static PropertyInfo<string> NameProperty = RegisterProperty<string>( p => p.Name );
public string Name
{
get { return GetProperty( NameProperty ); }
set { LoadProperty( NameProperty, value ); }
}
public static PropertyInfo<string> CodeProperty = RegisterProperty<string>( …Run Code Online (Sandbox Code Playgroud) 假设我有一个像这样的自定义类:
public class Customer
{
public int CustomerID { get; set; }
public string CompanyName { get; set; }
public string BusinessAddress { get; set; }
public string Phone { get; set; }
public int ParentID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我使用datareader从数据库创建自定义对象.例如:
while (dr.Read())
{
listCustomers.Add(new Customer(
Convert.ToInt32(dr["CustomerID"]),
Convert.ToString(dr["CompanyName"]),
Convert.ToString(dr["BusinessAddress"]),
Convert.ToString(dr["Phone"]),
Convert.ToInt32(dr["ParentID"]),
)
Run Code Online (Sandbox Code Playgroud)
ParentID在数据库中可以为null(我无法更改它).当它为null时,转换显然会失败.
我应该如何处理从数据库中检索的空值来填充我的业务对象?在我的自定义类中使用Nullable Types会不会很好?还有其他提示吗?
我的.NET 2.0站点上大约有15个.RPT文件,最近我更改为新的数据库服务器。
我成功地更改了其中14个.RPT文件的数据源,但是在其中一个进行更改之后,当我尝试保存更新的报告时,出现“无法保存文档”的信息。我可以更改子报表的数据源,并将其保存得很好,但是当我尝试更改主报表的数据源时,我收到了该错误消息。
我肯定在整个过程中的不同时间都在执行“验证数据库”,但这似乎无济于事。
有任何想法吗?
所以我有一个简单的交叉表报告,用于计算列中的销售数量,行数是每个办公室.右边的最后一列是一个总列,其中包含一个汇总字段(通过身份字段的计数),它将每个办事处的总销售额相加.
如何对交叉表数据进行排序,以便销售额最高的办公室排在第一位,其余的排在下面?
我愿意将实体框架集成为我的数据层.
我使用本教程跟踪文章并生成了poco实体:http://blogs.msdn.com/b/adonet/archive/2010/01/25/walkthrough-poco-template-for-the-entity-framework.aspx
我有自己的业务对象.这是我的业务对象Brach:
public class Branch
{
public long BranchId { get; private set; }
public string BranchName { get; set; }
public string BranchCode { get; set; }
public Branch() { }
public void InsertBranch(Guid companyId)
{
using (var ctx = new Entities.Entities())
{
var branch = new T_STF_BRANCH() //This is generated POCO object
{
company_id = companyId,
branch_name = BranchName,
branch_code = BranchCode
};
ctx.T_STF_BRANCH.AddObject(branch);
ctx.SaveChanges();
}
}
public static IList<Branch> GetBranchesList(Guid companyId, long? branchId, …Run Code Online (Sandbox Code Playgroud) .net entity-framework business-objects poco entity-framework-4
我通过MVVM在WPF中填充DataGrid。我有具有4个属性的业务对象,用于在DataGrid中创建行和列。
<DataGrid CanUserAddRows="True" ItemsSource="{Binding Path=PersonsInfo}" AutoGenerateColumns="False"
CanUserDeleteRows="True" CanUserReorderColumns="True"
CanUserSortColumns="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/>
<DataGridTextColumn Header="Age" Binding="{Binding Path=Age}"/>
<DataGridTextColumn Header="Date Of Birth" Binding="{Binding Path=DateOfBirth}"/>
<DataGridTextColumn Header="Address" Binding="{Binding Path=Address}"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Button Content="Remove..." Margin="3" Command="{Binding Path=RemoveCommand}" />
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,当我单击按钮时,需要从DataGrid中删除记录。
因此,我需要这样的要求:我应该将Command放在业务对象类中,而不是放在ViewModel类中。
当我单击每一行中的按钮时,应删除该对应的行。
因此,由于业务对象类不具有有关DataGrid项的信息,因此如何在业务对象类中执行命令来查找在DataGrid中选择哪个项目来删除行?
我在类库(作为嵌入式资源)中创建了一个本地报表,我想使用现有的业务对象作为报表的数据源.当我尝试从"报表数据"工具箱添加业务对象时,我看不到要选择的类.我注意到的是,如果业务对象是另一个类的子类,它存在于另一个类库中,那么它就不会出现.有没有人见过这个?所以我试过的是这样的:
场景1:
班级图书馆1
当我打开Report1.rdlc并尝试从Report Data工具箱创建一个New Object Data Source时,MyBO类是可见的,我可以选择它.如果我改变我的解决方案:
类库2命名空间ClassLibrary2 {public class MySuperClass {...}}
班级图书馆1
现在,当我尝试添加MyBO类时,它不会出现在"报表数据"工具箱中.不幸的是,我正在使用一个产品,而我的Business对象必须是另一个类库中的超类的子类.
有谁知道如何解决这个问题或这是一个错误?哦,我正在使用.Net 4和VS2010.谢谢.
亲切的问候
Sidharth
除了使用自定义SQL之外,如何限制WebI中查询返回的结果/行数?可能就像"前100名"记录.
我无法更改参数中的"限制结果大小",因为我不希望它影响任何其他报告.
先感谢您 :)
这可能并不像应该的那样复杂,但Business Objects似乎对SQL Developer的使用方式非常非常严格.这是有问题的陈述的一部分:
ship_date between '01' || '-' || w_current_ora_month || '-' || to_char(to_date(w_last_day, 'DD-MON-RR HH:MI:SS AM'), 'yy') and to_char(to_date(w_last_day, 'DD-MON-RR HH:MI:SS AM'))
Run Code Online (Sandbox Code Playgroud)
w_current_ora_month VARCHAR2(3)通过以下方式填写:
SELECT to_char(sysdate, 'MON')
INTO w_current_ora_month
FROM dual;
Run Code Online (Sandbox Code Playgroud)
w.last_day DATE通过以下方式填写:
SELECT trunc(LAST_DAY('01' || '-' || w_current_ora_month || '-' || to_char(w_year)))
into w_last_day
from dual
Run Code Online (Sandbox Code Playgroud)
从Business Objects中提取时为什么会出现"无效月"错误?我已经发现Business对象在类型上是严格的,所以我想知道我在这里做错了什么.所有这些在SQL开发人员中运行良好,但我不得不一遍又一遍地调整此语句,以便在Business Objects使用它时尝试使其工作.