我刚开始在我的一个项目中使用PetaPoco/NPoco并且不得不说它摇滚,但似乎该库无法生成DDL并创建基于Poco的表.我知道OrmLite可以做到这一点.
是否有一种方法/解决方法可用于例如装饰poco,然后根据属性生成DBMS特定的表脚本?例如Oracle,MSSql等
谢谢
我有一个Person包含以下列名的表:
Id,姓名,Dob
我也有一个poco:
public class Person
{
public int Id {get; set;}
public string Name {get; set;}
public string DateOfBirth {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试:
var people = new List<Person>();
... // added a bunch of people
using (var bcp = new SqlBulkCopy(sqlConnection, SqlBulkCopyOptions.TableLock, transaction))
using (var reader = ObjectReader.Create(people, "Id", "Name", "Dob"))
{
bcp.BulkCopyTimeout = 120;
bcp.BatchSize = 0;
bcp.DestinationTableName = "Person";
bcp.WriteToServer(reader);
}
Run Code Online (Sandbox Code Playgroud)
但是,由于Column name Dob与属性名称不匹配,DateOfBirth我得到Index out of rangeFastMember抛出,如何在不重命名属性或列的情况下解决问题.
请注意,我需要一个只能在运行时使用属性和列名称的答案,因为我当前正在使用ServiceStack Ormlite在运行时检索表元数据,而FastMember则在运行时再次访问ObjectReader.
任何帮助深表感谢.
我有以下代码:
var pattern = @"(?:red).*(\d+)";
var regX = new Regex(pattern);
var input = "this is red with number 111";
var replaced = regX.Replace(input, "666");
Run Code Online (Sandbox Code Playgroud)
的replaced则是:this is 666而不是:this is red with number 666
为什么会这样?
我有以下方法:
public void Say<TItem>(TItem item)
{
Console.WriteLine("A");
}
public void Say<TItem>(IEnumerable<TItem> items)
{
Console.WriteLine("B");
}
Run Code Online (Sandbox Code Playgroud)
当我运行以下内容时:
void Main()
{
Say<string>("Foo");
Say(new string[] { "Foo", "Bar"});
}
Run Code Online (Sandbox Code Playgroud)
第一个方法被调用两次:
A
A
Run Code Online (Sandbox Code Playgroud)
注意改变IEnumerable<T>为a TItem[]确实按预期工作,但是IEnumerable<T>为什么它没有采用第二种方法呢?如何实现预期的重载?
我可以使用下面的代码获取图像.拍摄后我想把图像变成一个byte[].我坚持的是我拍摄照片后如何拍摄图像?
Intent是我用来打开相机的意图,但我不确定是否有我可以覆盖的东西,或者如果意图仍然有我的话image/bitmap,我可以将其分解.
[Activity(Label = "CameraPage")]
public class PhotoTaker : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.CameraView);
ImageButton button = FindViewById<ImageButton>(Resource.Id.imagebutton);
button.Click += BtnCameraClick;
}
private string _imageUri;
private Intent intent;
private Boolean isMounted
{
get
{
return Android.OS.Environment.ExternalStorageState.Equals(Android.OS.Environment.MediaMounted);
}
}
public void BtnCameraClick(object sender, EventArgs eventArgs)
{
var uri = ContentResolver.Insert(isMounted
? MediaStore.Images.Media.ExternalContentUri
: MediaStore.Images.Media.InternalContentUri, new ContentValues());
_imageUri = uri.ToString();
intent = new Intent(MediaStore.ActionImageCapture);
//bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, uri);
intent.PutExtra(MediaStore.ExtraOutput, uri);
StartActivityForResult(intent, 1001); …Run Code Online (Sandbox Code Playgroud) 我有一个匿名对象列表:
var jobs = new List<object>
{
new
{
JobName = "Job1",
JobDate = "Date1",
JobUser = "User1"
},
new
{
JobName = "Job2",
JobDate = "Date2",
JobUser = "User2"
}
};
Run Code Online (Sandbox Code Playgroud)
如何使用linq找到"Job2"?
例如
var job2 = jobs.Where(x=>x.JobName == "Job2");
Run Code Online (Sandbox Code Playgroud)
我知道以下内容但不能以优雅的方式将其应用于上面的用例:
var anonymJob = new
{
JobName = "Job2",
JobDate = "Date2",
JobUser = "User2"
};
dynamic tJob = anonymJob.GetType();
string jobName = tJob.JobName; // this will be "Job2"
Run Code Online (Sandbox Code Playgroud)
请注意jobs.First()或Last()不被接受作为此问题的正确答案是如何根据其特定属性查找作业.
谢谢
我有一个输入让我们说:
DummyString-v1.0.0
我想在v得到之后提取所有内容:1.0.0
我怎样才能在CMD中实现这一目标?
我有一个简单的不变POCO定义为:
public sealed class Person
{
public Person(string name)
{
Name = name;
TimeStamp = DateTimeOffset.UtcNow;
}
public DateTimeOffset TimeStamp { get; }
public string Name { get; }
}
Run Code Online (Sandbox Code Playgroud)
然后,我执行一个简单的ser反序列化:
var p = new Person("Mr Right").Dump();
var ser = JSON.Serialize(p).Dump();
// Throws Deserialization Exception, Error occured building a deserializer,
// Expected a parameterless constructor...
JSON.Deserialize<Person>(ser).Dump();
Run Code Online (Sandbox Code Playgroud)
序列化成功产生:
{“ TimeStamp”:“ / Date(1456412550349 + 0000)/”,“ Name”:“ Mr Right”}
但是反序列化抛出了,有什么办法解决吗?是否JIL支持使用参数化构造函数对类型进行反序列化?
使用以下内容:
node 8.11.2
npm 6.3.0
Run Code Online (Sandbox Code Playgroud)
然后我尝试安装Vue CLI(@ vue/cli @ 3.0.0):
npm i -g @vue/cli
Run Code Online (Sandbox Code Playgroud)
但是当我运行以下命令时:
vue ui
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error: Cannot find module 'core-js/modules/es7.object.entries'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\Apps\caches\npm\node_modules\@vue\cli\node_modules\apollo-upload-server\lib\mi
ddleware.js:14:1)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
Run Code Online (Sandbox Code Playgroud) Vue.js有一个示例演示如何构建包装按钮的功能组件:
<template functional>
<button
class="btn btn-primary"
v-bind="data.attrs"
v-on="listeners"
>
<slot/>
</button>
</template>
Run Code Online (Sandbox Code Playgroud)
但是我如何构建一个类似的组件,select然后可以v-model在其父组件上使用它呢?
我想出了以下内容,但是当我v-model像这样使用它时:
<MyComponent :Label="'Status'" :Data="Statuses" v-model="selectedStatus" />
Run Code Online (Sandbox Code Playgroud)
的值selectedStatus变为:
[object Event]
Run Code Online (Sandbox Code Playgroud)
<template functional>
<select v-bind:value="data.attrs" v-on="listeners">
<option>-</option>
<option v-for="item in props.Data" :key="item" :value="item">{{item}}</option>
</select>
</template>
<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator";
@Component
export default class TaskSelector extends Vue {
@Prop({ type: String, required: true })
public Label!: string;
@Prop({ type: Array, required: true }) …Run Code Online (Sandbox Code Playgroud)