当通过NHibernate更新/插入实体而不扩展具有特殊属性的域类时,如何设置一些特殊的列值?
例如:在我的情况下,我希望获得对象,并在更新/插入db之前,通过使用IInterceptor向该对象添加一些其他信息(如用户ID或计算机名称).换句话说,我想在DB Table中添加几列而不在原始对象的类中指定新属性.Object.hbm.xml在这种情况下,我是否必须配置/更改/添加到我的或App.config?
问题是我无法更改我的原始对象和基类.所以我必须弄清楚是否有可能在不更改原始对象的情况下向DB表添加信息(甚至没有从任何基类继承)
例:
原始对象有: FirstName ,LastName,Birthday,Address properties
Customer.hbm.xml 具有:
<property name="FirstName" column="FirstName" type="string" not-null="true" length="64" />
<property name="LastName" column="LastName" type="string" not-null="true" length="64" />
<property name="Birthday" column="Birthday" type="DateTime" not-null="true" />
<property name="Address" column="Address" type="string" not-null="true" />
Run Code Online (Sandbox Code Playgroud)
我的Interceptor类有方法:
public bool OnSave(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types)
Run Code Online (Sandbox Code Playgroud)
在那一刻甚至可能在保存之前我必须在DB Customer表中添加额外的2列(例如计算机名和用户名),propertyNames[]并且state[]参数从一开始就没有它们,因此应该在运行中完成.
MY DB Customer表包含我上面描述的所有列.
谢谢.
我想制作折线图,以便与多个网页同步缩放/平移.
这些客户端具有相同的Javascript和HTML源.用户缩放或平移客户端A,将数据域的日期时间的消息发送给另一个和发送者(上图中的蓝线),并且接收的客户端的图表将同时更改.当然,其他客户也可以这样做.它类似于聊天应用程序.
缩放功能是:
function zoomed() {
let msg = [];
let t = d3.event.transform; //1)
msg[0] = t.rescaleX(x2).domain()[0].toString(); //2)
msg[1] = t.rescaleX(x2).domain()[1].toString(); //2)
sendMessage(msg); //3)
}
Run Code Online (Sandbox Code Playgroud)
服务器将收到的数据发送给所有客户
function passiveZoom(rcv){
let leftend;
let rightend;
leftend = new Date(rcv[0]);
rightend = new Date(rcv[1]);
x.domain([leftend, rightend]);
svg.select(".line").attr("d", valueline);
svg.select(".axis").call(xAxis);
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,可以缩放所有折线图.
但是,它不能按要求工作.
如果我在客户端A中进行缩放,则客户端B和客户端C将被更改.那没问题.
接下来,我在客户端C上放大(上图中的橙色线),所有图形都变为初始比例和位置.为什么!?
我假设鼠标坐标没有发送到客户端,但是当我发送鼠标的位置坐标时应该如何处理?
缩放|平移过程是从mbostock的块中分叉的:画笔和缩放.发件人还会更改X2域的范围t.rescalex (x2).domain().由于X2未在图纸中使用,我将X更改为x2,但我只能放大.我不明白X2的含义.
您能告诉我如何同步所有客户吗?什么是x2?
<!DOCTYPE html>
<meta charset="utf-8">
<style>
/* set the CSS */ …Run Code Online (Sandbox Code Playgroud) 考虑到这个工作示例,数据更新使 svg 更新而无需重新绘制。相关的原始代码部分使其行为如解释:
// DATA JOIN
link = link.data(firstLinks ? graph.links1 : graph.links2);
// DATA JOIN
node = node.data(graph.nodes);
simulation.force("link")
.links(firstLinks ? graph.links1 : graph.links2);
Run Code Online (Sandbox Code Playgroud)
但是,如果节点和链接数据引用是新的,即使内容相同,每次更新时也会重新绘制 svg。相关的更改代码部分使其行为如解释:
var new_graph_http_data = fetchNewData(); // unreferenced new data copy from graph
// DATA JOIN
link = link.data(firstLinks ? new_graph_http_data.links1 : new_graph_http_data.links2);
// DATA JOIN
node = node.data(new_graph_http_data.nodes);
simulation.force("link")
.links(firstLinks ? new_graph_http_data.links1 : new_graph_http_data.links2);
Run Code Online (Sandbox Code Playgroud)
在这里,在函数 update() 中,调用 update_local() 将使图形按预期工作。调用 update_http() 将使图形重新绘制。
// DATA JOIN
link = link.data(firstLinks ? graph.links1 : graph.links2); …Run Code Online (Sandbox Code Playgroud)我正在尝试使用D3显示一些简单的条形图,其中每个条形均为div,但什么都没有显示。
var chartData = [4, 8, 15, 16, 23, 42];
var body = d3.select('body');
var svg = body.append('svg')
.attr("width",800)
.attr("height",500);
var div = svg.append('div').attr('class', '.chart');
for (var i = 0; i < chartData.length; i++) {
div.append('div')
.attr("height", 20)
.attr("width", chartData[i]*10)
.html(chartData[i]);
}Run Code Online (Sandbox Code Playgroud)
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 3px;
margin: 1px;
color: white;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js"></script>Run Code Online (Sandbox Code Playgroud)
使用检查SVG时,我看到了新创建的元素,并且svg被突出显示,但是内部div的svg未突出显示。
为了提高我的在线地图的性能,特别是在智能手机上,我遵循Mike Bostock的建议,在将地理数据上传到服务器之前尽可能地准备地理数据(根据他的命令行制图).例如,我正在通过d3.geoConicEqualArea()命令行投射TopoJSON数据,而不是让观看者的浏览器在加载地图时执行这项繁重的工作.
不过,我也想用类似的方法.scale,.fitSize,.fitExtent和.translate动态,这意味着我不能"烤"的规模或价值事先翻译成TopoJSON文件.
Bostock建议使用d3.geoTransform()作为预测的代理,例如,d3.geoConicEqualArea()如果您正在使用已经预测的数据但仍希望扩展或翻译它.例如,要在y轴上翻转投影,他建议:
var reflectY = d3.geoTransform({
point: function(x, y) {
this.stream.point(x, -y);
}
}),
path = d3.geoPath()
.projection(reflectY);
Run Code Online (Sandbox Code Playgroud)
我的问题:如果我使用这个D3功能,我是不是仍然强迫观众的浏览器进行大量的数据处理,这会使性能恶化?预处理数据的目的是避免这种情况.或者我是否过高估计上述d3.geoTransform()功能涉及的处理工作?
我正在尝试可视化俄罗斯地区。我从拿到的数据在这里,验证在这里,一切都很好-图片。
但是当我尝试绘制它时,我只收到一个大的黑色矩形。
var width = 700, height = 400;
var svg = d3.select(".graph").append("svg")
.attr("viewBox", "0 0 " + (width) + " " + (height))
.style("max-width", "700px")
.style("margin", "10px auto");
d3.json("83.json", function (error, mapData) {
var features = mapData.features;
var path = d3.geoPath().projection(d3.geoMercator());
svg.append("g")
.attr("class", "region")
.selectAll("path")
.data(features)
.enter()
.append("path")
.attr("d", path)
});
Run Code Online (Sandbox Code Playgroud)
示例 - http://ustnv.ru/d3/index.html Geojson 文件 - http://ustnv.ru/d3/83.json
我玩过d3js (v5)地图,我正在尝试生成这张地图(截图来自一个随机网站), 对于我的特殊情况,不需要呈现南极洲。
我在这里阅读了文档:https : //github.com/d3/d3-geo#projections,并按照说明使用了 geoMercator,得到了这张平面地图,由于某种原因,该地图在北上角被截断。
获取第一张地图布局的正确方法是什么?有什么建议?
我正在尝试绘制哥伦比亚某些地区的 geojson 地图。目前它只显示一个路径:,
我的特征集合有 52 个特征,但我只能绘制这一个特征。我不知道我做错了什么,我的代码基于其他教程。我该怎么做才能显示所有路径?
var features = mapData.features;
console.log(features);
// Update color scale domain based on data
// Draw each province as a path
mapLayer.selectAll('path')
.data(features)
.enter().append('path')
.attr('d', path)
.attr('vector-effect', 'non-scaling-stroke')
Run Code Online (Sandbox Code Playgroud)
这是我的完整代码:
早上好,我花了很多时间弄清楚如何在情节上直接添加国家名称,而不是像传奇的一部分,而是像地图的一部分.我正在使用包rworldmap,尝试使用identifyCountries ()- 但它是用于交互的东西(当用户点击地图时),而不是我找到了一个这样的解决方案
一个国家的行政区域地图与ggmap和ggplot2,但它是ggplot2,太复杂了.我试着这样做mapCountryData().希望对你有所帮助,谢谢.
data <- data.frame(Country=c('Russia','Cyprus', 'Belize', 'Austria' ,'Virgin Islands',
'Italy','United States' ,'United Kingdom', 'Germany', 'France' ,'Poland' ,'Switzerland'),
Value=c(-0.310,-0.206,-0.300,-0.179,-0.196,-0.174,-0.105,-0.142,-0.082,-0.097,-0.027,0.052))
library('rworldmap')
pdf1 <- joinCountryData2Map(data, joinCode="NAME", nameJoinColumn="Country")
mapCountryData(pdf1, nameColumnToPlot="Value", catMethod="pretty",
colourPalette='white2Black',addLegend='TRUE',mapTitle=NULL, mapRegion="Europe")
Run Code Online (Sandbox Code Playgroud) 我想在 R 中使用R2D3 pacakge,但不确定这个包与 D3.js 库的关系。R2D3 是否以任何方式限制了 D3 的功能?我们可以在 R2D3 中使用 R 中的所有 D3 函数和特性吗?
d3.js ×8
javascript ×6
geojson ×3
geo ×2
r ×2
database ×1
force-layout ×1
iinterceptor ×1
interaction ×1
maps ×1
nhibernate ×1
node.js ×1
r2d3 ×1
rworldmap ×1
svg ×1
topojson ×1
zoom ×1