var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" +
"Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10";
IFreeSql fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.MySql, connstr)
.UseAutoSyncStructure(true) //自动同步实体结构到数据库
.Build();
[Table(Name = "tb_topic")]
class Topic {
[Column(IsIdentity = true, IsPrimary = true)]
public int Id { get; set; }
public int Clicks { get; set; }
public string Title { get; set; }
public DateTime CreateTime { get; set; }
}
var items = new List<Topic>();
for (var a = 0; a < 10; a++) items.Add(new Topic { Id = a + 1, Title = $"newtitle{a}", Clicks = a * 100 });
열을 무시
fsql.Insert<Topic>(items).IgnoreColumns(a => a.CreateTime).ExecuteAffrows();
다음과 같이 SQL을 실행합니다 :
INSERT INTO `tb_topic`(`Clicks`, `Title`) VALUES(?Clicks0, ?Title0), (?Clicks1, ?Title1), (?Clicks2, ?Title2), (?Clicks3, ?Title3), (?Clicks4, ?Title4), (?Clicks5, ?Title5), (?Clicks6, ?Title6), (?Clicks7, ?Title7), (?Clicks8, ?Title8), (?Clicks9, ?Title9)
fsql.Insert<Topic>(items).IgnoreColumns(a => new { a.Title, a.CreateTime }).ExecuteAffrows();
다음과 같이 SQL을 실행합니다 :
INSERT INTO `tb_topic`(`Clicks`) VALUES(?Clicks0), (?Clicks1), (?Clicks2), (?Clicks3), (?Clicks4), (?Clicks5), (?Clicks6), (?Clicks7), (?Clicks8), (?Clicks9)
API
방법 | 반환 값 | 매개 변수 | 기술 |
---|---|---|---|
대한 appendData | <본> | T1 | IEnumerable을
|
삽입을위한 추가 엔티티 |
InsertIdentity | <본> | 아니오 | 삽입 자동 증가를 지정합니다 |
InsertColumns | <본> | 람다 | 그냥 열을 삽입 |
IgnoreColumns | <본> | 람다 | 열을 무시 |
WithTransaction | <본> | DbTransaction | 설정 트랜잭션 객체 |
ToSql | 끈 | 실행하는 SQL 문을 반환 | |
ExecuteAffrows | 긴 | 행의 수는 SQL 문, 수익의 영향을 실행합니다 | |
ExecuteIdentity | 긴 | 부가가치에서 반환하는 SQL 문을 실행 | |
ExecuteInserted | 목록 <T1> | 레코드의 삽입이 반환 후, SQL 문을 실행 |